linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
@ 2019-01-10 10:05 Peng Ma
  2019-01-10 10:05 ` [PATCH 2/2] arm64: dts: lx2160a: add sata node support Peng Ma
  2019-01-10 10:31 ` [PATCH 1/2] ahci: qoriq: add lx2160 platforms support Peng Ma
  0 siblings, 2 replies; 7+ messages in thread
From: Peng Ma @ 2019-01-10 10:05 UTC (permalink / raw)
  To: shawnguo, axboe
  Cc: leoyang.li, robh+dt, mark.rutland, linux-arm-kernel, devicetree,
	linux-kernel, linux-ide, Peng Ma

Lx2160a is a new introduced soc which supports ATA3.0 and
Clean up some code

Signed-off-by: Peng Ma <peng.ma@nxp.com>
---
 drivers/ata/ahci_qoriq.c |   44 ++++++++++++--------------------------------
 1 files changed, 12 insertions(+), 32 deletions(-)

diff --git a/drivers/ata/ahci_qoriq.c b/drivers/ata/ahci_qoriq.c
index ce59253..1994bf2 100644
--- a/drivers/ata/ahci_qoriq.c
+++ b/drivers/ata/ahci_qoriq.c
@@ -57,7 +57,7 @@ enum ahci_qoriq_type {
 	AHCI_LS2080A,
 	AHCI_LS1046A,
 	AHCI_LS1088A,
-	AHCI_LS2088A,
+	AHCI_LX2160A,
 };
 
 struct ahci_qoriq_priv {
@@ -73,7 +73,7 @@ struct ahci_qoriq_priv {
 	{ .compatible = "fsl,ls2080a-ahci", .data = (void *)AHCI_LS2080A},
 	{ .compatible = "fsl,ls1046a-ahci", .data = (void *)AHCI_LS1046A},
 	{ .compatible = "fsl,ls1088a-ahci", .data = (void *)AHCI_LS1088A},
-	{ .compatible = "fsl,ls2088a-ahci", .data = (void *)AHCI_LS2088A},
+	{ .compatible = "fsl,lx2160a-ahci", .data = (void *)AHCI_LX2160A},
 	{},
 };
 MODULE_DEVICE_TABLE(of, ahci_qoriq_of_match);
@@ -174,12 +174,10 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
 		writel(LS1021A_PORT_PHY4, reg_base + PORT_PHY4);
 		writel(LS1021A_PORT_PHY5, reg_base + PORT_PHY5);
 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
-		if (qpriv->is_dmacoherent)
-			writel(AHCI_PORT_AXICC_CFG,
-					reg_base + LS1021A_AXICC_ADDR);
 		break;
 
 	case AHCI_LS1043A:
+	case AHCI_LS1046A:
 		if (!qpriv->ecc_addr)
 			return -EINVAL;
 		writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2,
@@ -188,8 +186,6 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
-		if (qpriv->is_dmacoherent)
-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
 		break;
 
 	case AHCI_LS2080A:
@@ -197,24 +193,10 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
-		if (qpriv->is_dmacoherent)
-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
-		break;
-
-	case AHCI_LS1046A:
-		if (!qpriv->ecc_addr)
-			return -EINVAL;
-		writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2,
-				qpriv->ecc_addr);
-		writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
-		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
-		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
-		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
-		if (qpriv->is_dmacoherent)
-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
 		break;
 
 	case AHCI_LS1088A:
+	case AHCI_LX2160A:
 		if (!qpriv->ecc_addr)
 			return -EINVAL;
 		writel(readl(qpriv->ecc_addr) | ECC_DIS_LS1088A,
@@ -223,18 +205,16 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
-		if (qpriv->is_dmacoherent)
-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
 		break;
+	}
 
-	case AHCI_LS2088A:
-		writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
-		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
-		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
-		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
-		if (qpriv->is_dmacoherent)
-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
-		break;
+	if (qpriv->is_dmacoherent) {
+		if (qpriv->type == AHCI_LS1021A)
+			writel(AHCI_PORT_AXICC_CFG,
+			       reg_base + LS1021A_AXICC_ADDR);
+		else
+			writel(AHCI_PORT_AXICC_CFG,
+			       reg_base + PORT_AXICC);
 	}
 
 	return 0;
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] arm64: dts: lx2160a: add sata node support
  2019-01-10 10:05 [PATCH 1/2] ahci: qoriq: add lx2160 platforms support Peng Ma
@ 2019-01-10 10:05 ` Peng Ma
  2019-01-13  4:05   ` Shawn Guo
  2019-01-10 10:31 ` [PATCH 1/2] ahci: qoriq: add lx2160 platforms support Peng Ma
  1 sibling, 1 reply; 7+ messages in thread
From: Peng Ma @ 2019-01-10 10:05 UTC (permalink / raw)
  To: shawnguo, axboe
  Cc: leoyang.li, robh+dt, mark.rutland, linux-arm-kernel, devicetree,
	linux-kernel, linux-ide, Peng Ma

Add sata node support and Enable sata support

Signed-off-by: Peng Ma <peng.ma@nxp.com>
---
 arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts |   16 +++++++
 arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi    |   44 +++++++++++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
index 6481e5f..aacca27 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
@@ -117,3 +117,19 @@
 &usb1 {
 	status = "okay";
 };
+
+&sata0 {
+	status = "okay";
+};
+
+&sata1 {
+	status = "okay";
+};
+
+&sata2 {
+	status = "okay";
+};
+
+&sata3 {
+	status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
index a79f5c1..e857a14 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
@@ -762,5 +762,49 @@
 				     <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
 			dma-coherent;
 		};
+
+		sata0: sata@3200000 {
+			status = "disabled";
+			compatible = "fsl,lx2160a-ahci";
+			reg = <0x0 0x3200000 0x0 0x10000>,
+			      <0x7 0x100520 0x0 0x4>;
+			reg-names = "ahci", "sata-ecc";
+			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clockgen 4 3>;
+			dma-coherent;
+		};
+
+		sata1: sata@3210000 {
+			status = "disabled";
+			compatible = "fsl,lx2160a-ahci";
+			reg = <0x0 0x3210000 0x0 0x10000>,
+			      <0x7 0x100520 0x0 0x4>;
+			reg-names = "ahci", "sata-ecc";
+			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clockgen 4 3>;
+			dma-coherent;
+		};
+
+		sata2: sata@3220000 {
+			status = "disabled";
+			compatible = "fsl,lx2160a-ahci";
+			reg = <0x0 0x3220000 0x0 0x10000>,
+			      <0x7 0x100520 0x0 0x4>;
+			reg-names = "ahci", "sata-ecc";
+			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clockgen 4 3>;
+			dma-coherent;
+		};
+
+		sata3: sata@3230000 {
+			status = "disabled";
+			compatible = "fsl,lx2160a-ahci";
+			reg = <0x0 0x3230000 0x0 0x10000>,
+			      <0x7 0x100520 0x0 0x4>;
+			reg-names = "ahci", "sata-ecc";
+			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clockgen 4 3>;
+			dma-coherent;
+		};
 	};
 };
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* RE: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
  2019-01-10 10:05 [PATCH 1/2] ahci: qoriq: add lx2160 platforms support Peng Ma
  2019-01-10 10:05 ` [PATCH 2/2] arm64: dts: lx2160a: add sata node support Peng Ma
@ 2019-01-10 10:31 ` Peng Ma
  2019-01-10 20:30   ` Leo Li
  1 sibling, 1 reply; 7+ messages in thread
From: Peng Ma @ 2019-01-10 10:31 UTC (permalink / raw)
  To: Peng Ma, shawnguo, axboe
  Cc: Leo Li, robh+dt, mark.rutland, linux-arm-kernel, devicetree,
	linux-kernel, linux-ide, Andy Tang

Hi Jens,

	I send the sata patchs to the upstream patchwork with ./scripts/get_maintainer.pl, but I find my patch on http://patchwork.ozlabs.org/project/linux-ide/list/ , I saw the MAINTAINERS, the driver/ata/* should be on https://patchwork.kernel.org/project/linux-block/list/ . could you please help me what the patchwork is right.
	Thanks a lot.

Best Regards,
Peng

>-----Original Message-----
>From: Peng Ma <peng.ma@nxp.com>
>Sent: 2019年1月10日 18:06
>To: shawnguo@kernel.org; axboe@kernel.dk
>Cc: Leo Li <leoyang.li@nxp.com>; robh+dt@kernel.org;
>mark.rutland@arm.com; linux-arm-kernel@lists.infradead.org;
>devicetree@vger.kernel.org; linux-kernel@vger.kernel.org;
>linux-ide@vger.kernel.org; Peng Ma <peng.ma@nxp.com>
>Subject: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
>
>Lx2160a is a new introduced soc which supports ATA3.0 and Clean up some
>code
>
>Signed-off-by: Peng Ma <peng.ma@nxp.com>
>---
> drivers/ata/ahci_qoriq.c |   44 ++++++++++++--------------------------------
> 1 files changed, 12 insertions(+), 32 deletions(-)
>
>diff --git a/drivers/ata/ahci_qoriq.c b/drivers/ata/ahci_qoriq.c index
>ce59253..1994bf2 100644
>--- a/drivers/ata/ahci_qoriq.c
>+++ b/drivers/ata/ahci_qoriq.c
>@@ -57,7 +57,7 @@ enum ahci_qoriq_type {
> 	AHCI_LS2080A,
> 	AHCI_LS1046A,
> 	AHCI_LS1088A,
>-	AHCI_LS2088A,
>+	AHCI_LX2160A,
> };
>
> struct ahci_qoriq_priv {
>@@ -73,7 +73,7 @@ struct ahci_qoriq_priv {
> 	{ .compatible = "fsl,ls2080a-ahci", .data = (void *)AHCI_LS2080A},
> 	{ .compatible = "fsl,ls1046a-ahci", .data = (void *)AHCI_LS1046A},
> 	{ .compatible = "fsl,ls1088a-ahci", .data = (void *)AHCI_LS1088A},
>-	{ .compatible = "fsl,ls2088a-ahci", .data = (void *)AHCI_LS2088A},
>+	{ .compatible = "fsl,lx2160a-ahci", .data = (void *)AHCI_LX2160A},
> 	{},
> };
> MODULE_DEVICE_TABLE(of, ahci_qoriq_of_match); @@ -174,12 +174,10
>@@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
> 		writel(LS1021A_PORT_PHY4, reg_base + PORT_PHY4);
> 		writel(LS1021A_PORT_PHY5, reg_base + PORT_PHY5);
> 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>-		if (qpriv->is_dmacoherent)
>-			writel(AHCI_PORT_AXICC_CFG,
>-					reg_base + LS1021A_AXICC_ADDR);
> 		break;
>
> 	case AHCI_LS1043A:
>+	case AHCI_LS1046A:
> 		if (!qpriv->ecc_addr)
> 			return -EINVAL;
> 		writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2, @@ -188,8
>+186,6 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
> 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
> 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
> 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>-		if (qpriv->is_dmacoherent)
>-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
> 		break;
>
> 	case AHCI_LS2080A:
>@@ -197,24 +193,10 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv
>*hpriv)
> 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
> 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
> 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>-		if (qpriv->is_dmacoherent)
>-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
>-		break;
>-
>-	case AHCI_LS1046A:
>-		if (!qpriv->ecc_addr)
>-			return -EINVAL;
>-		writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2,
>-				qpriv->ecc_addr);
>-		writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
>-		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
>-		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
>-		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>-		if (qpriv->is_dmacoherent)
>-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
> 		break;
>
> 	case AHCI_LS1088A:
>+	case AHCI_LX2160A:
> 		if (!qpriv->ecc_addr)
> 			return -EINVAL;
> 		writel(readl(qpriv->ecc_addr) | ECC_DIS_LS1088A, @@ -223,18
>+205,16 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
> 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
> 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
> 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>-		if (qpriv->is_dmacoherent)
>-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
> 		break;
>+	}
>
>-	case AHCI_LS2088A:
>-		writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
>-		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
>-		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
>-		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>-		if (qpriv->is_dmacoherent)
>-			writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
>-		break;
>+	if (qpriv->is_dmacoherent) {
>+		if (qpriv->type == AHCI_LS1021A)
>+			writel(AHCI_PORT_AXICC_CFG,
>+			       reg_base + LS1021A_AXICC_ADDR);
>+		else
>+			writel(AHCI_PORT_AXICC_CFG,
>+			       reg_base + PORT_AXICC);
> 	}
>
> 	return 0;
>--
>1.7.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
  2019-01-10 10:31 ` [PATCH 1/2] ahci: qoriq: add lx2160 platforms support Peng Ma
@ 2019-01-10 20:30   ` Leo Li
  2019-01-11  6:35     ` Peng Ma
  0 siblings, 1 reply; 7+ messages in thread
From: Leo Li @ 2019-01-10 20:30 UTC (permalink / raw)
  To: Peng Ma, shawnguo, axboe
  Cc: robh+dt, mark.rutland, linux-arm-kernel, devicetree,
	linux-kernel, linux-ide, Andy Tang



> -----Original Message-----
> From: Peng Ma
> Sent: Thursday, January 10, 2019 4:32 AM
> To: Peng Ma <peng.ma@nxp.com>; shawnguo@kernel.org;
> axboe@kernel.dk
> Cc: Leo Li <leoyang.li@nxp.com>; robh+dt@kernel.org;
> mark.rutland@arm.com; linux-arm-kernel@lists.infradead.org;
> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
> ide@vger.kernel.org; Andy Tang <andy.tang@nxp.com>
> Subject: RE: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
> 
> Hi Jens,
> 
> 	I send the sata patchs to the upstream patchwork
> with ./scripts/get_maintainer.pl, but I find my patch on
> http://patchwork.ozlabs.org/project/linux-ide/list/ , I saw the MAINTAINERS,
> the driver/ata/* should be on https://patchwork.kernel.org/project/linux-
> block/list/ . could you please help me what the patchwork is right.

Peng,

The patchwork used is related to the mailing list which you send the patch to not the maintainer's git tree used.  Since the MAINTAINERS file says drivers/ata should use linux-ide mailing list, patches will appear in linux-ide patchwork.

Regards,
Leo

> 	Thanks a lot.
> 
> Best Regards,
> Peng
> 
> >-----Original Message-----
> >From: Peng Ma <peng.ma@nxp.com>
> >Sent: 2019年1月10日 18:06
> >To: shawnguo@kernel.org; axboe@kernel.dk
> >Cc: Leo Li <leoyang.li@nxp.com>; robh+dt@kernel.org;
> >mark.rutland@arm.com; linux-arm-kernel@lists.infradead.org;
> >devicetree@vger.kernel.org; linux-kernel@vger.kernel.org;
> >linux-ide@vger.kernel.org; Peng Ma <peng.ma@nxp.com>
> >Subject: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
> >
> >Lx2160a is a new introduced soc which supports ATA3.0 and Clean up some
> >code
> >
> >Signed-off-by: Peng Ma <peng.ma@nxp.com>
> >---
> > drivers/ata/ahci_qoriq.c |   44 ++++++++++++--------------------------------
> > 1 files changed, 12 insertions(+), 32 deletions(-)
> >
> >diff --git a/drivers/ata/ahci_qoriq.c b/drivers/ata/ahci_qoriq.c index
> >ce59253..1994bf2 100644
> >--- a/drivers/ata/ahci_qoriq.c
> >+++ b/drivers/ata/ahci_qoriq.c
> >@@ -57,7 +57,7 @@ enum ahci_qoriq_type {
> > 	AHCI_LS2080A,
> > 	AHCI_LS1046A,
> > 	AHCI_LS1088A,
> >-	AHCI_LS2088A,
> >+	AHCI_LX2160A,
> > };
> >
> > struct ahci_qoriq_priv {
> >@@ -73,7 +73,7 @@ struct ahci_qoriq_priv {
> > 	{ .compatible = "fsl,ls2080a-ahci", .data = (void *)AHCI_LS2080A},
> > 	{ .compatible = "fsl,ls1046a-ahci", .data = (void *)AHCI_LS1046A},
> > 	{ .compatible = "fsl,ls1088a-ahci", .data = (void *)AHCI_LS1088A},
> >-	{ .compatible = "fsl,ls2088a-ahci", .data = (void *)AHCI_LS2088A},
> >+	{ .compatible = "fsl,lx2160a-ahci", .data = (void *)AHCI_LX2160A},
> > 	{},
> > };
> > MODULE_DEVICE_TABLE(of, ahci_qoriq_of_match); @@ -174,12 +174,10
> @@
> >static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
> > 		writel(LS1021A_PORT_PHY4, reg_base + PORT_PHY4);
> > 		writel(LS1021A_PORT_PHY5, reg_base + PORT_PHY5);
> > 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
> >-		if (qpriv->is_dmacoherent)
> >-			writel(AHCI_PORT_AXICC_CFG,
> >-					reg_base + LS1021A_AXICC_ADDR);
> > 		break;
> >
> > 	case AHCI_LS1043A:
> >+	case AHCI_LS1046A:
> > 		if (!qpriv->ecc_addr)
> > 			return -EINVAL;
> > 		writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2, @@ -
> 188,8
> >+186,6 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
> > 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
> > 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
> > 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
> >-		if (qpriv->is_dmacoherent)
> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
> PORT_AXICC);
> > 		break;
> >
> > 	case AHCI_LS2080A:
> >@@ -197,24 +193,10 @@ static int ahci_qoriq_phy_init(struct
> >ahci_host_priv
> >*hpriv)
> > 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
> > 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
> > 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
> >-		if (qpriv->is_dmacoherent)
> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
> PORT_AXICC);
> >-		break;
> >-
> >-	case AHCI_LS1046A:
> >-		if (!qpriv->ecc_addr)
> >-			return -EINVAL;
> >-		writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2,
> >-				qpriv->ecc_addr);
> >-		writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
> >-		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
> >-		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
> >-		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
> >-		if (qpriv->is_dmacoherent)
> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
> PORT_AXICC);
> > 		break;
> >
> > 	case AHCI_LS1088A:
> >+	case AHCI_LX2160A:
> > 		if (!qpriv->ecc_addr)
> > 			return -EINVAL;
> > 		writel(readl(qpriv->ecc_addr) | ECC_DIS_LS1088A, @@ -
> 223,18
> >+205,16 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
> > 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
> > 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
> > 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
> >-		if (qpriv->is_dmacoherent)
> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
> PORT_AXICC);
> > 		break;
> >+	}
> >
> >-	case AHCI_LS2088A:
> >-		writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
> >-		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
> >-		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
> >-		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
> >-		if (qpriv->is_dmacoherent)
> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
> PORT_AXICC);
> >-		break;
> >+	if (qpriv->is_dmacoherent) {
> >+		if (qpriv->type == AHCI_LS1021A)
> >+			writel(AHCI_PORT_AXICC_CFG,
> >+			       reg_base + LS1021A_AXICC_ADDR);
> >+		else
> >+			writel(AHCI_PORT_AXICC_CFG,
> >+			       reg_base + PORT_AXICC);
> > 	}
> >
> > 	return 0;
> >--
> >1.7.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
  2019-01-10 20:30   ` Leo Li
@ 2019-01-11  6:35     ` Peng Ma
  0 siblings, 0 replies; 7+ messages in thread
From: Peng Ma @ 2019-01-11  6:35 UTC (permalink / raw)
  To: Leo Li, shawnguo, axboe
  Cc: robh+dt, mark.rutland, linux-arm-kernel, devicetree,
	linux-kernel, linux-ide, Andy Tang



>-----Original Message-----
>From: Leo Li
>Sent: 2019年1月11日 4:30
>To: Peng Ma <peng.ma@nxp.com>; shawnguo@kernel.org; axboe@kernel.dk
>Cc: robh+dt@kernel.org; mark.rutland@arm.com;
>linux-arm-kernel@lists.infradead.org; devicetree@vger.kernel.org;
>linux-kernel@vger.kernel.org; linux-ide@vger.kernel.org; Andy Tang
><andy.tang@nxp.com>
>Subject: RE: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
>
>
>
>> -----Original Message-----
>> From: Peng Ma
>> Sent: Thursday, January 10, 2019 4:32 AM
>> To: Peng Ma <peng.ma@nxp.com>; shawnguo@kernel.org; axboe@kernel.dk
>> Cc: Leo Li <leoyang.li@nxp.com>; robh+dt@kernel.org;
>> mark.rutland@arm.com; linux-arm-kernel@lists.infradead.org;
>> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
>> ide@vger.kernel.org; Andy Tang <andy.tang@nxp.com>
>> Subject: RE: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
>>
>> Hi Jens,
>>
>> 	I send the sata patchs to the upstream patchwork with
>> ./scripts/get_maintainer.pl, but I find my patch on
>> http://patchwork.ozlabs.org/project/linux-ide/list/ , I saw the
>> MAINTAINERS, the driver/ata/* should be on
>> https://patchwork.kernel.org/project/linux-
>> block/list/ . could you please help me what the patchwork is right.
>
>Peng,
>
>The patchwork used is related to the mailing list which you send the patch to
>not the maintainer's git tree used.  Since the MAINTAINERS file says
>drivers/ata should use linux-ide mailing list, patches will appear in linux-ide
>patchwork.
>
>Regards,
>Leo
>
[Peng Ma] got it, thanks.
Best Regards,
Peng
>> 	Thanks a lot.
>>
>> Best Regards,
>> Peng
>>
>> >-----Original Message-----
>> >From: Peng Ma <peng.ma@nxp.com>
>> >Sent: 2019年1月10日 18:06
>> >To: shawnguo@kernel.org; axboe@kernel.dk
>> >Cc: Leo Li <leoyang.li@nxp.com>; robh+dt@kernel.org;
>> >mark.rutland@arm.com; linux-arm-kernel@lists.infradead.org;
>> >devicetree@vger.kernel.org; linux-kernel@vger.kernel.org;
>> >linux-ide@vger.kernel.org; Peng Ma <peng.ma@nxp.com>
>> >Subject: [PATCH 1/2] ahci: qoriq: add lx2160 platforms support
>> >
>> >Lx2160a is a new introduced soc which supports ATA3.0 and Clean up
>> >some code
>> >
>> >Signed-off-by: Peng Ma <peng.ma@nxp.com>
>> >---
>> > drivers/ata/ahci_qoriq.c |   44 ++++++++++++--------------------------------
>> > 1 files changed, 12 insertions(+), 32 deletions(-)
>> >
>> >diff --git a/drivers/ata/ahci_qoriq.c b/drivers/ata/ahci_qoriq.c
>> >index
>> >ce59253..1994bf2 100644
>> >--- a/drivers/ata/ahci_qoriq.c
>> >+++ b/drivers/ata/ahci_qoriq.c
>> >@@ -57,7 +57,7 @@ enum ahci_qoriq_type {
>> > 	AHCI_LS2080A,
>> > 	AHCI_LS1046A,
>> > 	AHCI_LS1088A,
>> >-	AHCI_LS2088A,
>> >+	AHCI_LX2160A,
>> > };
>> >
>> > struct ahci_qoriq_priv {
>> >@@ -73,7 +73,7 @@ struct ahci_qoriq_priv {
>> > 	{ .compatible = "fsl,ls2080a-ahci", .data = (void *)AHCI_LS2080A},
>> > 	{ .compatible = "fsl,ls1046a-ahci", .data = (void *)AHCI_LS1046A},
>> > 	{ .compatible = "fsl,ls1088a-ahci", .data = (void *)AHCI_LS1088A},
>> >-	{ .compatible = "fsl,ls2088a-ahci", .data = (void *)AHCI_LS2088A},
>> >+	{ .compatible = "fsl,lx2160a-ahci", .data = (void *)AHCI_LX2160A},
>> > 	{},
>> > };
>> > MODULE_DEVICE_TABLE(of, ahci_qoriq_of_match); @@ -174,12 +174,10
>> @@
>> >static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
>> > 		writel(LS1021A_PORT_PHY4, reg_base + PORT_PHY4);
>> > 		writel(LS1021A_PORT_PHY5, reg_base + PORT_PHY5);
>> > 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>> >-		if (qpriv->is_dmacoherent)
>> >-			writel(AHCI_PORT_AXICC_CFG,
>> >-					reg_base + LS1021A_AXICC_ADDR);
>> > 		break;
>> >
>> > 	case AHCI_LS1043A:
>> >+	case AHCI_LS1046A:
>> > 		if (!qpriv->ecc_addr)
>> > 			return -EINVAL;
>> > 		writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2, @@ -
>> 188,8
>> >+186,6 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv
>> >+*hpriv)
>> > 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
>> > 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
>> > 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>> >-		if (qpriv->is_dmacoherent)
>> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
>> PORT_AXICC);
>> > 		break;
>> >
>> > 	case AHCI_LS2080A:
>> >@@ -197,24 +193,10 @@ static int ahci_qoriq_phy_init(struct
>> >ahci_host_priv
>> >*hpriv)
>> > 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
>> > 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
>> > 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>> >-		if (qpriv->is_dmacoherent)
>> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
>> PORT_AXICC);
>> >-		break;
>> >-
>> >-	case AHCI_LS1046A:
>> >-		if (!qpriv->ecc_addr)
>> >-			return -EINVAL;
>> >-		writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2,
>> >-				qpriv->ecc_addr);
>> >-		writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
>> >-		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
>> >-		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
>> >-		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>> >-		if (qpriv->is_dmacoherent)
>> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
>> PORT_AXICC);
>> > 		break;
>> >
>> > 	case AHCI_LS1088A:
>> >+	case AHCI_LX2160A:
>> > 		if (!qpriv->ecc_addr)
>> > 			return -EINVAL;
>> > 		writel(readl(qpriv->ecc_addr) | ECC_DIS_LS1088A, @@ -
>> 223,18
>> >+205,16 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv
>> >+*hpriv)
>> > 		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
>> > 		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
>> > 		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>> >-		if (qpriv->is_dmacoherent)
>> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
>> PORT_AXICC);
>> > 		break;
>> >+	}
>> >
>> >-	case AHCI_LS2088A:
>> >-		writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
>> >-		writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
>> >-		writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
>> >-		writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
>> >-		if (qpriv->is_dmacoherent)
>> >-			writel(AHCI_PORT_AXICC_CFG, reg_base +
>> PORT_AXICC);
>> >-		break;
>> >+	if (qpriv->is_dmacoherent) {
>> >+		if (qpriv->type == AHCI_LS1021A)
>> >+			writel(AHCI_PORT_AXICC_CFG,
>> >+			       reg_base + LS1021A_AXICC_ADDR);
>> >+		else
>> >+			writel(AHCI_PORT_AXICC_CFG,
>> >+			       reg_base + PORT_AXICC);
>> > 	}
>> >
>> > 	return 0;
>> >--
>> >1.7.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] arm64: dts: lx2160a: add sata node support
  2019-01-10 10:05 ` [PATCH 2/2] arm64: dts: lx2160a: add sata node support Peng Ma
@ 2019-01-13  4:05   ` Shawn Guo
  2019-01-14  9:52     ` Peng Ma
  0 siblings, 1 reply; 7+ messages in thread
From: Shawn Guo @ 2019-01-13  4:05 UTC (permalink / raw)
  To: Peng Ma
  Cc: axboe, leoyang.li, robh+dt, mark.rutland, linux-arm-kernel,
	devicetree, linux-kernel, linux-ide

On Thu, Jan 10, 2019 at 06:05:33PM +0800, Peng Ma wrote:
> Add sata node support and Enable sata support
> 
> Signed-off-by: Peng Ma <peng.ma@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts |   16 +++++++
>  arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi    |   44 +++++++++++++++++++++
>  2 files changed, 60 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
> index 6481e5f..aacca27 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
> +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
> @@ -117,3 +117,19 @@
>  &usb1 {
>  	status = "okay";
>  };
> +
> +&sata0 {
> +	status = "okay";
> +};
> +
> +&sata1 {
> +	status = "okay";
> +};
> +
> +&sata2 {
> +	status = "okay";
> +};
> +
> +&sata3 {
> +	status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
> index a79f5c1..e857a14 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
> @@ -762,5 +762,49 @@
>  				     <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
>  			dma-coherent;
>  		};
> +
> +		sata0: sata@3200000 {
> +			status = "disabled";

We usually have 'status' at the end of property list.

Shawn

> +			compatible = "fsl,lx2160a-ahci";
> +			reg = <0x0 0x3200000 0x0 0x10000>,
> +			      <0x7 0x100520 0x0 0x4>;
> +			reg-names = "ahci", "sata-ecc";
> +			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&clockgen 4 3>;
> +			dma-coherent;
> +		};
> +
> +		sata1: sata@3210000 {
> +			status = "disabled";
> +			compatible = "fsl,lx2160a-ahci";
> +			reg = <0x0 0x3210000 0x0 0x10000>,
> +			      <0x7 0x100520 0x0 0x4>;
> +			reg-names = "ahci", "sata-ecc";
> +			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&clockgen 4 3>;
> +			dma-coherent;
> +		};
> +
> +		sata2: sata@3220000 {
> +			status = "disabled";
> +			compatible = "fsl,lx2160a-ahci";
> +			reg = <0x0 0x3220000 0x0 0x10000>,
> +			      <0x7 0x100520 0x0 0x4>;
> +			reg-names = "ahci", "sata-ecc";
> +			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&clockgen 4 3>;
> +			dma-coherent;
> +		};
> +
> +		sata3: sata@3230000 {
> +			status = "disabled";
> +			compatible = "fsl,lx2160a-ahci";
> +			reg = <0x0 0x3230000 0x0 0x10000>,
> +			      <0x7 0x100520 0x0 0x4>;
> +			reg-names = "ahci", "sata-ecc";
> +			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&clockgen 4 3>;
> +			dma-coherent;
> +		};
>  	};
>  };
> -- 
> 1.7.1
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH 2/2] arm64: dts: lx2160a: add sata node support
  2019-01-13  4:05   ` Shawn Guo
@ 2019-01-14  9:52     ` Peng Ma
  0 siblings, 0 replies; 7+ messages in thread
From: Peng Ma @ 2019-01-14  9:52 UTC (permalink / raw)
  To: Shawn Guo
  Cc: axboe, Leo Li, robh+dt, mark.rutland, linux-arm-kernel,
	devicetree, linux-kernel, linux-ide



>-----Original Message-----
>From: Shawn Guo <shawnguo@kernel.org>
>Sent: 2019年1月13日 12:06
>To: Peng Ma <peng.ma@nxp.com>
>Cc: axboe@kernel.dk; Leo Li <leoyang.li@nxp.com>; robh+dt@kernel.org;
>mark.rutland@arm.com; linux-arm-kernel@lists.infradead.org;
>devicetree@vger.kernel.org; linux-kernel@vger.kernel.org;
>linux-ide@vger.kernel.org
>Subject: Re: [PATCH 2/2] arm64: dts: lx2160a: add sata node support
>
>On Thu, Jan 10, 2019 at 06:05:33PM +0800, Peng Ma wrote:
>> Add sata node support and Enable sata support
>>
>> Signed-off-by: Peng Ma <peng.ma@nxp.com>
>> ---
>>  arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts |   16 +++++++
>>  arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi    |   44
>+++++++++++++++++++++
>>  2 files changed, 60 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
>b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
>> index 6481e5f..aacca27 100644
>> --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
>> +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
>> @@ -117,3 +117,19 @@
>>  &usb1 {
>>  	status = "okay";
>>  };
>> +
>> +&sata0 {
>> +	status = "okay";
>> +};
>> +
>> +&sata1 {
>> +	status = "okay";
>> +};
>> +
>> +&sata2 {
>> +	status = "okay";
>> +};
>> +
>> +&sata3 {
>> +	status = "okay";
>> +};
>> diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
>b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
>> index a79f5c1..e857a14 100644
>> --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
>> +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
>> @@ -762,5 +762,49 @@
>>  				     <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
>>  			dma-coherent;
>>  		};
>> +
>> +		sata0: sata@3200000 {
>> +			status = "disabled";
>
>We usually have 'status' at the end of property list.
>
>Shawn
[Peng Ma] 
Ok, got it, thanks yure quick reply.
Regards,
Peng
>
>> +			compatible = "fsl,lx2160a-ahci";
>> +			reg = <0x0 0x3200000 0x0 0x10000>,
>> +			      <0x7 0x100520 0x0 0x4>;
>> +			reg-names = "ahci", "sata-ecc";
>> +			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
>> +			clocks = <&clockgen 4 3>;
>> +			dma-coherent;
>> +		};
>> +
>> +		sata1: sata@3210000 {
>> +			status = "disabled";
>> +			compatible = "fsl,lx2160a-ahci";
>> +			reg = <0x0 0x3210000 0x0 0x10000>,
>> +			      <0x7 0x100520 0x0 0x4>;
>> +			reg-names = "ahci", "sata-ecc";
>> +			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
>> +			clocks = <&clockgen 4 3>;
>> +			dma-coherent;
>> +		};
>> +
>> +		sata2: sata@3220000 {
>> +			status = "disabled";
>> +			compatible = "fsl,lx2160a-ahci";
>> +			reg = <0x0 0x3220000 0x0 0x10000>,
>> +			      <0x7 0x100520 0x0 0x4>;
>> +			reg-names = "ahci", "sata-ecc";
>> +			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
>> +			clocks = <&clockgen 4 3>;
>> +			dma-coherent;
>> +		};
>> +
>> +		sata3: sata@3230000 {
>> +			status = "disabled";
>> +			compatible = "fsl,lx2160a-ahci";
>> +			reg = <0x0 0x3230000 0x0 0x10000>,
>> +			      <0x7 0x100520 0x0 0x4>;
>> +			reg-names = "ahci", "sata-ecc";
>> +			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
>> +			clocks = <&clockgen 4 3>;
>> +			dma-coherent;
>> +		};
>>  	};
>>  };
>> --
>> 1.7.1
>>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-01-14  9:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-10 10:05 [PATCH 1/2] ahci: qoriq: add lx2160 platforms support Peng Ma
2019-01-10 10:05 ` [PATCH 2/2] arm64: dts: lx2160a: add sata node support Peng Ma
2019-01-13  4:05   ` Shawn Guo
2019-01-14  9:52     ` Peng Ma
2019-01-10 10:31 ` [PATCH 1/2] ahci: qoriq: add lx2160 platforms support Peng Ma
2019-01-10 20:30   ` Leo Li
2019-01-11  6:35     ` Peng Ma

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).