diff mbox series

ARM: dts: imx7d-sdb: add rev-a board support

Message ID 1541567625-11812-1-git-send-email-Anson.Huang@nxp.com (mailing list archive)
State New, archived
Headers show
Series ARM: dts: imx7d-sdb: add rev-a board support | expand

Commit Message

Anson Huang Nov. 7, 2018, 5:18 a.m. UTC
Current imx7d-sdb.dts has some incorrect settings about
Rev-A and Rev-B boards, some of the settings are based on
Rev-A board but some are based on Rev-B board, clean up it
by adding i.MX7D SDB Rev-A board support, make default
imx7d-sdb.dts for Rev-B board as usual, and introduce
imx7d-sdb-reva.dts for Rev-A board. Below are the affected
differences of Rev-A and Rev-B board:

                Rev-A           Rev-B
USB_OTG2_PWR:   UART3_CTS_B     GPIO1_IO07
ENET_EN_B:      None            GPIO1_IO04
TP_INT_B:       EPDC_DATA13     EPDC_BDR1

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
 arch/arm/boot/dts/Makefile           |  1 +
 arch/arm/boot/dts/imx7d-sdb-reva.dts | 40 ++++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/imx7d-sdb.dts      | 21 ++++++++++++++++---
 3 files changed, 59 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/boot/dts/imx7d-sdb-reva.dts

Comments

Fabio Estevam Nov. 7, 2018, 10:03 a.m. UTC | #1
Hi Anson,

On Wed, Nov 7, 2018 at 3:19 AM Anson Huang <anson.huang@nxp.com> wrote:

> +&fec2 {
> +       pinctrl-0 = <&pinctrl_enet2>;
> +       /delete-property/pinctrl-assert-gpios;

"pinctrl-assert-gpios" does not exist in mainline, so not sure why you
are deleting it.
Anson Huang Nov. 8, 2018, 1:24 a.m. UTC | #2
Hi, Fabio

Best Regards!
Anson Huang

> -----Original Message-----
> From: Fabio Estevam [mailto:festevam@gmail.com]
> Sent: 2018年11月7日 18:03
> To: Anson Huang <anson.huang@nxp.com>
> Cc: Rob Herring <robh+dt@kernel.org>; Mark Rutland
> <mark.rutland@arm.com>; Shawn Guo <shawnguo@kernel.org>; Sascha
> Hauer <s.hauer@pengutronix.de>; Sascha Hauer <kernel@pengutronix.de>;
> Fabio Estevam <fabio.estevam@nxp.com>; open list:OPEN FIRMWARE AND
> FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>; linux-kernel
> <linux-kernel@vger.kernel.org>; moderated list:ARM/FREESCALE IMX / MXC
> ARM ARCHITECTURE <linux-arm-kernel@lists.infradead.org>; dl-linux-imx
> <linux-imx@nxp.com>
> Subject: Re: [PATCH] ARM: dts: imx7d-sdb: add rev-a board support
> 
> Hi Anson,
> 
> On Wed, Nov 7, 2018 at 3:19 AM Anson Huang <anson.huang@nxp.com>
> wrote:
> 
> > +&fec2 {
> > +       pinctrl-0 = <&pinctrl_enet2>;
> > +       /delete-property/pinctrl-assert-gpios;
> 
> "pinctrl-assert-gpios" does not exist in mainline, so not sure why you are
> deleting it.

Regarding the fec2 settings in imx7d-sdb.dts, originally it uses Rev-A board (but some nodes are
using Rev-B board), in this patch, I clean up all the settings in imx7d-sdb.dts using Rev-B board,
so below is added to imx7d-sdb.dts for Rev-B board, and in imx7d-sdb-reva.dts I have to
delete it, since Rev-A board has no this pin.

-	pinctrl-0 = <&pinctrl_enet2>;
+	pinctrl-0 = <&pinctrl_enet2 &pinctrl_enet2_epdc0_en>;
+	pinctrl-assert-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
 
Anson.
Fabio Estevam Nov. 8, 2018, 2:20 a.m. UTC | #3
Hi Anson,

On Wed, Nov 7, 2018 at 11:24 PM Anson Huang <anson.huang@nxp.com> wrote:

> Regarding the fec2 settings in imx7d-sdb.dts, originally it uses Rev-A board (but some nodes are
> using Rev-B board), in this patch, I clean up all the settings in imx7d-sdb.dts using Rev-B board,
> so below is added to imx7d-sdb.dts for Rev-B board, and in imx7d-sdb-reva.dts I have to
> delete it, since Rev-A board has no this pin.
>
> -       pinctrl-0 = <&pinctrl_enet2>;
> +       pinctrl-0 = <&pinctrl_enet2 &pinctrl_enet2_epdc0_en>;
> +       pinctrl-assert-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;

"pinctrl-assert-gpios" only exists in the NXP vendor kernel, so you
cannot use such property in mainline.
Anson Huang Nov. 8, 2018, 2:30 a.m. UTC | #4
Hi, Fabio

Best Regards!
Anson Huang

> -----Original Message-----
> From: Fabio Estevam [mailto:festevam@gmail.com]
> Sent: 2018年11月8日 10:21
> To: Anson Huang <anson.huang@nxp.com>
> Cc: Rob Herring <robh+dt@kernel.org>; Mark Rutland
> <mark.rutland@arm.com>; Shawn Guo <shawnguo@kernel.org>; Sascha
> Hauer <s.hauer@pengutronix.de>; Sascha Hauer <kernel@pengutronix.de>;
> Fabio Estevam <fabio.estevam@nxp.com>; open list:OPEN FIRMWARE AND
> FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>; linux-kernel
> <linux-kernel@vger.kernel.org>; moderated list:ARM/FREESCALE IMX / MXC
> ARM ARCHITECTURE <linux-arm-kernel@lists.infradead.org>; dl-linux-imx
> <linux-imx@nxp.com>
> Subject: Re: [PATCH] ARM: dts: imx7d-sdb: add rev-a board support
> 
> Hi Anson,
> 
> On Wed, Nov 7, 2018 at 11:24 PM Anson Huang <anson.huang@nxp.com>
> wrote:
> 
> > Regarding the fec2 settings in imx7d-sdb.dts, originally it uses Rev-A
> > board (but some nodes are using Rev-B board), in this patch, I clean
> > up all the settings in imx7d-sdb.dts using Rev-B board, so below is
> > added to imx7d-sdb.dts for Rev-B board, and in imx7d-sdb-reva.dts I have to
> delete it, since Rev-A board has no this pin.
> >
> > -       pinctrl-0 = <&pinctrl_enet2>;
> > +       pinctrl-0 = <&pinctrl_enet2 &pinctrl_enet2_epdc0_en>;
> > +       pinctrl-assert-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
> 
> "pinctrl-assert-gpios" only exists in the NXP vendor kernel, so you cannot use
> such property in mainline.

Thanks for pointing out this issue, I made a mistake when doing the search in git repo..
So, if we have to assert a GPIO, there is no common way in pinctrl driver? Have to
do it in driver itself? Like this case, we have to assert the GPIO in fec driver?

Or, by default the GPIO is LOW on the board which is for FEC2, we can just skip it now?
The EPDC driver is NOT enabled yet in upstream mainline.

Anson.
Fabio Estevam Nov. 8, 2018, 3:37 p.m. UTC | #5
Hi Anson,

On Thu, Nov 8, 2018 at 12:30 AM Anson Huang <anson.huang@nxp.com> wrote:

> Thanks for pointing out this issue, I made a mistake when doing the search in git repo..
> So, if we have to assert a GPIO, there is no common way in pinctrl driver? Have to
> do it in driver itself? Like this case, we have to assert the GPIO in fec driver?

You could pass "phy-supply" property  and model it as gpio controlled regulator.
Anson Huang Nov. 9, 2018, 1:27 a.m. UTC | #6
Hi, Fabio

Best Regards!
Anson Huang

> -----Original Message-----
> From: Fabio Estevam [mailto:festevam@gmail.com]
> Sent: 2018年11月8日 23:38
> To: Anson Huang <anson.huang@nxp.com>
> Cc: Rob Herring <robh+dt@kernel.org>; Mark Rutland
> <mark.rutland@arm.com>; Shawn Guo <shawnguo@kernel.org>; Sascha
> Hauer <s.hauer@pengutronix.de>; Sascha Hauer <kernel@pengutronix.de>;
> Fabio Estevam <fabio.estevam@nxp.com>; open list:OPEN FIRMWARE AND
> FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>; linux-kernel
> <linux-kernel@vger.kernel.org>; moderated list:ARM/FREESCALE IMX / MXC
> ARM ARCHITECTURE <linux-arm-kernel@lists.infradead.org>; dl-linux-imx
> <linux-imx@nxp.com>
> Subject: Re: [PATCH] ARM: dts: imx7d-sdb: add rev-a board support
> 
> Hi Anson,
> 
> On Thu, Nov 8, 2018 at 12:30 AM Anson Huang <anson.huang@nxp.com>
> wrote:
> 
> > Thanks for pointing out this issue, I made a mistake when doing the search in
> git repo..
> > So, if we have to assert a GPIO, there is no common way in pinctrl
> > driver? Have to do it in driver itself? Like this case, we have to assert the
> GPIO in fec driver?
> 
> You could pass "phy-supply" property  and model it as gpio controlled
> regulator.

Thanks for the suggestion, I tried it and it works, please help review V2 patch.

Anson.
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index ef9ffa4..6d133b9 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -572,6 +572,7 @@  dtb-$(CONFIG_SOC_IMX7D) += \
 	imx7d-pico-pi.dtb \
 	imx7d-sbc-imx7.dtb \
 	imx7d-sdb.dtb \
+	imx7d-sdb-reva.dtb \
 	imx7d-sdb-sht11.dtb \
 	imx7s-colibri-eval-v3.dtb \
 	imx7s-warp.dtb
diff --git a/arch/arm/boot/dts/imx7d-sdb-reva.dts b/arch/arm/boot/dts/imx7d-sdb-reva.dts
new file mode 100644
index 0000000..c57c13d
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-sdb-reva.dts
@@ -0,0 +1,40 @@ 
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright (C) 2015 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx7d-sdb.dts"
+
+/ {
+	reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
+		gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&fec2 {
+	pinctrl-0 = <&pinctrl_enet2>;
+	/delete-property/pinctrl-assert-gpios;
+};
+
+&iomuxc {
+	imx7d-sdb {
+		pinctrl_tsc2046_pendown: tsc2046_pendown {
+			fsl,pins = <
+				MX7D_PAD_EPDC_DATA13__GPIO2_IO13	0x59
+			>;
+		};
+
+		pinctrl_hog: hoggrp {
+			fsl,pins = <
+				MX7D_PAD_UART3_CTS_B__GPIO4_IO7		0x14
+				MX7D_PAD_ECSPI2_SS0__GPIO4_IO23		0x34  /* bt reg on */
+			>;
+		};
+	};
+};
+
+&iomuxc_lpsr {
+	/delete-property/pinctrl-names;
+	/delete-property/pinctrl-0;
+};
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index f1bafda..b89d9f6 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -73,7 +73,7 @@ 
 		regulator-name = "usb_otg2_vbus";
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
+		gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
 	};
 
@@ -203,7 +203,8 @@ 
 
 &fec2 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_enet2>;
+	pinctrl-0 = <&pinctrl_enet2 &pinctrl_enet2_epdc0_en>;
+	pinctrl-assert-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
 	assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
 			  <&clks IMX7D_ENET2_TIME_ROOT_CLK>;
 	assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
@@ -491,6 +492,12 @@ 
 			>;
 		};
 
+		pinctrl_enet2_epdc0_en: enet2_epdc0_grp {
+			fsl,pins = <
+				MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4	0x14
+			>;
+		};
+
 		pinctrl_flexcan2: flexcan2grp {
 			fsl,pins = <
 				MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX	0x59
@@ -513,7 +520,6 @@ 
 
 		pinctrl_hog: hoggrp {
 			fsl,pins = <
-				MX7D_PAD_UART3_CTS_B__GPIO4_IO7		0x14
 				MX7D_PAD_ECSPI2_SS0__GPIO4_IO23		0x34  /* bt reg on */
 			>;
 		};
@@ -724,6 +730,9 @@ 
 };
 
 &iomuxc_lpsr {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog_2>;
+
 	pinctrl_wdog: wdoggrp {
 		fsl,pins = <
 			MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B		0x74
@@ -735,4 +744,10 @@ 
 			MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT		0x30
 		>;
 	};
+
+	pinctrl_hog_2: hoggrp-2 {
+		fsl,pins = <
+			MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7	  0x14
+		>;
+	};
 };