All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shawn Guo <shawnguo@kernel.org>
To: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Cc: linux-arm-kernel@lists.infradead.org,
	Fabio Estevam <festevam@denx.de>, Marek Vasut <marex@denx.de>,
	NXP Linux Team <linux-imx@nxp.com>,
	kernel@dh-electronics.com
Subject: Re: [PATCH V6 08/15] ARM: dts: imx6q-dhcom: Rework of the DHCOM GPIO pinctrls
Date: Fri, 23 Jul 2021 14:40:24 +0800	[thread overview]
Message-ID: <20210723064022.GQ28658@dragon> (raw)
In-Reply-To: <20210714210713.9015-8-cniedermaier@dh-electronics.com>

On Wed, Jul 14, 2021 at 11:07:06PM +0200, Christoph Niedermaier wrote:
> Define each DHCOM GPIO as a separate pinctrl. So on board layer it is
> possible to easily add an used DHCOM GPIO by moving &pinctrl_dhcom_X
> from the gpio hog list to the appropriate driver pinctrl.

I'm not sure this is a good idea. Each board should define the pinctrl
for GPIO as per how it's used on the board.

Shawn

> 
> Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: Fabio Estevam <festevam@denx.de>
> Cc: Marek Vasut <marex@denx.de>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: kernel@dh-electronics.com
> To: linux-arm-kernel@lists.infradead.org
> ---
> V2: - Rebase on Shawn Guos branch for-next
> V3: - No changes
> V4: - No changes
> V5: - No changes
> V6: - Rebase on 5.14-rc1
> ---
>  arch/arm/boot/dts/imx6q-dhcom-pdk2.dts | 105 ++++++++++++-------------------
>  arch/arm/boot/dts/imx6q-dhcom-som.dtsi | 109 ++++++++++++++++++++++++++++++++-
>  2 files changed, 148 insertions(+), 66 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/imx6q-dhcom-pdk2.dts b/arch/arm/boot/dts/imx6q-dhcom-pdk2.dts
> index 3b0276de41f9..8122db759880 100644
> --- a/arch/arm/boot/dts/imx6q-dhcom-pdk2.dts
> +++ b/arch/arm/boot/dts/imx6q-dhcom-pdk2.dts
> @@ -38,7 +38,7 @@
>  		#size-cells = <0>;
>  		interface-pix-fmt = "rgb24";
>  		pinctrl-names = "default";
> -		pinctrl-0 = <&pinctrl_ipu1_lcdif>;
> +		pinctrl-0 = <&pinctrl_ipu1_lcdif &pinctrl_dhcom_g>;
>  		status = "okay";
>  
>  		port@0 {
> @@ -61,13 +61,13 @@
>  	gpio-keys {
>  		#size-cells = <0>;
>  		compatible = "gpio-keys";
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pinctrl_keys_pdk2>;
>  
>  		button-0 {
>  			label = "TA1-GPIO-A";
>  			linux,code = <KEY_A>;
>  			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
> +			pinctrl-0 = <&pinctrl_dhcom_a>;
> +			pinctrl-names = "default";
>  			wakeup-source;
>  		};
>  
> @@ -75,6 +75,8 @@
>  			label = "TA2-GPIO-B";
>  			linux,code = <KEY_B>;
>  			gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
> +			pinctrl-0 = <&pinctrl_dhcom_b>;
> +			pinctrl-names = "default";
>  			wakeup-source;
>  		};
>  
> @@ -82,6 +84,8 @@
>  			label = "TA3-GPIO-C";
>  			linux,code = <KEY_C>;
>  			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
> +			pinctrl-0 = <&pinctrl_dhcom_c>;
> +			pinctrl-names = "default";
>  			wakeup-source;
>  		};
>  
> @@ -89,14 +93,14 @@
>  			label = "TA4-GPIO-D";
>  			linux,code = <KEY_D>;
>  			gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
> +			pinctrl-0 = <&pinctrl_dhcom_d>;
> +			pinctrl-names = "default";
>  			wakeup-source;
>  		};
>  	};
>  
>  	led {
>  		compatible = "gpio-leds";
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&pinctrl_leds_pdk2>;
>  
>  		/*
>  		 * Disable led-5, because GPIO E is
> @@ -107,6 +111,8 @@
>  			function = LED_FUNCTION_INDICATOR;
>  			gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* GPIO E */
>  			default-state = "off";
> +			pinctrl-0 = <&pinctrl_dhcom_e>;
> +			pinctrl-names = "default";
>  			status = "disabled";
>  		};
>  
> @@ -115,6 +121,8 @@
>  			function = LED_FUNCTION_INDICATOR;
>  			gpios = <&gpio4 20 GPIO_ACTIVE_HIGH>; /* GPIO F */
>  			default-state = "off";
> +			pinctrl-0 = <&pinctrl_dhcom_f>;
> +			pinctrl-names = "default";
>  		};
>  
>  		led-7 {
> @@ -122,6 +130,8 @@
>  			function = LED_FUNCTION_INDICATOR;
>  			gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>; /* GPIO H */
>  			default-state = "off";
> +			pinctrl-0 = <&pinctrl_dhcom_h>;
> +			pinctrl-names = "default";
>  		};
>  
>  		led-8 {
> @@ -129,6 +139,8 @@
>  			function = LED_FUNCTION_INDICATOR;
>  			gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* GPIO I */
>  			default-state = "off";
> +			pinctrl-0 = <&pinctrl_dhcom_i>;
> +			pinctrl-names = "default";
>  		};
>  	};
>  
> @@ -230,7 +242,7 @@
>  
>  	touchscreen@38 {
>  		pinctrl-names = "default";
> -		pinctrl-0 = <&pinctrl_touchscreen>;
> +		pinctrl-0 = <&pinctrl_dhcom_e>;
>  		compatible = "edt,edt-ft5406";
>  		reg = <0x38>;
>  		interrupt-parent = <&gpio4>;
> @@ -240,34 +252,28 @@
>  
>  &iomuxc {
>  	pinctrl-names = "default";
> -	pinctrl-0 = <&pinctrl_hog_base &pinctrl_hog>;
> -
> -	pinctrl_hog: hog-grp {
> -		fsl,pins = <
> -			MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x400120b0
> -			MX6QDL_PAD_GPIO_4__GPIO1_IO04		0x400120b0
> -			MX6QDL_PAD_GPIO_5__GPIO1_IO05		0x400120b0
> -			MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03	0x400120b0
> -			MX6QDL_PAD_DI0_PIN4__GPIO4_IO20		0x400120b0
> -			MX6QDL_PAD_KEY_ROW0__GPIO4_IO07		0x120b0
> -			MX6QDL_PAD_KEY_COL1__GPIO4_IO08		0x400120b0
> -			MX6QDL_PAD_NANDF_CS1__GPIO6_IO14	0x400120b0
> -			MX6QDL_PAD_NANDF_CS2__GPIO6_IO15	0x400120b0
> -			MX6QDL_PAD_KEY_ROW1__GPIO4_IO09		0x400120b0
> -			MX6QDL_PAD_SD3_DAT5__GPIO7_IO00		0x400120b0
> -			MX6QDL_PAD_SD3_DAT4__GPIO7_IO01		0x400120b0
> -			MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21	0x400120b0
> -			MX6QDL_PAD_GPIO_18__GPIO7_IO13		0x400120b0
> -			MX6QDL_PAD_SD1_CMD__GPIO1_IO18		0x400120b0
> -			MX6QDL_PAD_SD1_DAT0__GPIO1_IO16		0x400120b0
> -			MX6QDL_PAD_SD1_DAT1__GPIO1_IO17		0x400120b0
> -			MX6QDL_PAD_SD1_DAT2__GPIO1_IO19		0x400120b0
> -			MX6QDL_PAD_SD1_CLK__GPIO1_IO20		0x400120b0
> -			MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18	0x400120b0
> -			MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19	0x400120b0
> -			MX6QDL_PAD_KEY_COL0__GPIO4_IO06		0x400120b0
> +	pinctrl-0 = <
> +			/*
> +			 * The following DHCOM GPIOs are used on this board.
> +			 * Therefore, they have been removed from the list below.
> +			 * A: key TA1
> +			 * B: key TA2
> +			 * C: key TA3
> +			 * D: key TA4
> +			 * E: touchscreen
> +			 * F: led6
> +			 * G: backlight enable
> +			 * H: led7
> +			 * I: led8
> +			 * J: PCIe reset
> +			 */
> +			&pinctrl_hog_base
> +			&pinctrl_dhcom_k &pinctrl_dhcom_l
> +			&pinctrl_dhcom_m &pinctrl_dhcom_n &pinctrl_dhcom_o
> +			&pinctrl_dhcom_p &pinctrl_dhcom_q &pinctrl_dhcom_r
> +			&pinctrl_dhcom_s &pinctrl_dhcom_t &pinctrl_dhcom_u
> +			&pinctrl_dhcom_v &pinctrl_dhcom_w &pinctrl_dhcom_int
>  		>;
> -	};
>  
>  	pinctrl_audmux_ext: audmux-ext-grp {
>  		fsl,pins = <
> @@ -336,7 +342,6 @@
>  			MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21	0x38
>  			MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22	0x38
>  			MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23	0x38
> -			MX6QDL_PAD_EIM_D27__GPIO3_IO27			0x120b0
>  		>;
>  	};
>  
> @@ -345,36 +350,6 @@
>  			MX6QDL_PAD_SD1_DAT3__PWM1_OUT		0x1b0b1
>  		>;
>  	};
> -
> -	pinctrl_touchscreen: touchscreen-grp {
> -		fsl,pins = <
> -			MX6QDL_PAD_GPIO_19__GPIO4_IO05		0x1b0b1
> -		>;
> -	};
> -
> -	pinctrl_pcie_reset: pcie-reset-grp {
> -		fsl,pins = <
> -			MX6QDL_PAD_NANDF_CS1__GPIO6_IO14	0x120b0
> -		>;
> -	};
> -
> -	pinctrl_keys_pdk2: keys-pdk2-grp {
> -		fsl,pins = <
> -			MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x120b0 /* TA1 */
> -			MX6QDL_PAD_GPIO_4__GPIO1_IO04		0x120b0 /* TA2 */
> -			MX6QDL_PAD_GPIO_5__GPIO1_IO05		0x120b0 /* TA3 */
> -			MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03	0x120b0 /* TA4 */
> -		>;
> -	};
> -
> -	pinctrl_leds_pdk2: leds-pdk2-grp {
> -		fsl,pins = <
> -			MX6QDL_PAD_DI0_PIN4__GPIO4_IO20		0x120b0 /* led6 */
> -			MX6QDL_PAD_KEY_ROW0__GPIO4_IO07		0x120b0 /* led7 */
> -			MX6QDL_PAD_KEY_COL1__GPIO4_IO08		0x120b0 /* led8 */
> -		>;
> -	};
> -
>  };
>  
>  &ipu1_di0_disp0 {
> @@ -382,7 +357,7 @@
>  };
>  
>  &pcie {
> -	pinctrl-0 = <&pinctrl_pcie &pinctrl_pcie_reset>;
> +	pinctrl-0 = <&pinctrl_pcie &pinctrl_dhcom_j>;
>  	reset-gpio = <&gpio6 14 GPIO_ACTIVE_LOW>;
>  	status = "okay";
>  };
> diff --git a/arch/arm/boot/dts/imx6q-dhcom-som.dtsi b/arch/arm/boot/dts/imx6q-dhcom-som.dtsi
> index c5c060c6b9bf..9fd48ab9b3d0 100644
> --- a/arch/arm/boot/dts/imx6q-dhcom-som.dtsi
> +++ b/arch/arm/boot/dts/imx6q-dhcom-som.dtsi
> @@ -317,7 +317,17 @@
>  
>  &iomuxc {
>  	pinctrl-names = "default";
> -	pinctrl-0 = <&pinctrl_hog_base>;
> +	pinctrl-0 = <
> +			&pinctrl_hog_base
> +			&pinctrl_dhcom_a &pinctrl_dhcom_b &pinctrl_dhcom_c
> +			&pinctrl_dhcom_d &pinctrl_dhcom_e &pinctrl_dhcom_f
> +			&pinctrl_dhcom_g &pinctrl_dhcom_h &pinctrl_dhcom_i
> +			&pinctrl_dhcom_j &pinctrl_dhcom_k &pinctrl_dhcom_l
> +			&pinctrl_dhcom_m &pinctrl_dhcom_n &pinctrl_dhcom_o
> +			&pinctrl_dhcom_p &pinctrl_dhcom_q &pinctrl_dhcom_r
> +			&pinctrl_dhcom_s &pinctrl_dhcom_t &pinctrl_dhcom_u
> +			&pinctrl_dhcom_v &pinctrl_dhcom_w &pinctrl_dhcom_int
> +		>;
>  
>  	pinctrl_hog_base: hog-base-grp {
>  		fsl,pins = <
> @@ -329,6 +339,103 @@
>  		>;
>  	};
>  
> +	/* DHCOM GPIOs */
> +	pinctrl_dhcom_a: dhcom-a-grp {
> +		fsl,pins = <MX6QDL_PAD_GPIO_2__GPIO1_IO02	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_b: dhcom-b-grp {
> +		fsl,pins = <MX6QDL_PAD_GPIO_4__GPIO1_IO04	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_c: dhcom-c-grp {
> +		fsl,pins = <MX6QDL_PAD_GPIO_5__GPIO1_IO05	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_d: dhcom-d-grp {
> +		fsl,pins = <MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_e: dhcom-e-grp {
> +		fsl,pins = <MX6QDL_PAD_GPIO_19__GPIO4_IO05	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_f: dhcom-f-grp {
> +		fsl,pins = <MX6QDL_PAD_DI0_PIN4__GPIO4_IO20	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_g: dhcom-g-grp {
> +		fsl,pins = <MX6QDL_PAD_EIM_D27__GPIO3_IO27	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_h: dhcom-h-grp {
> +		fsl,pins = <MX6QDL_PAD_KEY_ROW0__GPIO4_IO07	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_i: dhcom-i-grp {
> +		fsl,pins = <MX6QDL_PAD_KEY_COL1__GPIO4_IO08	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_j: dhcom-j-grp {
> +		fsl,pins = <MX6QDL_PAD_NANDF_CS1__GPIO6_IO14	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_k: dhcom-k-grp {
> +		fsl,pins = <MX6QDL_PAD_NANDF_CS2__GPIO6_IO15	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_l: dhcom-l-grp {
> +		fsl,pins = <MX6QDL_PAD_KEY_ROW1__GPIO4_IO09	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_m: dhcom-m-grp {
> +		fsl,pins = <MX6QDL_PAD_SD3_DAT5__GPIO7_IO00	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_n: dhcom-n-grp {
> +		fsl,pins = <MX6QDL_PAD_SD3_DAT4__GPIO7_IO01	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_o: dhcom-o-grp {
> +		fsl,pins = <MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_p: dhcom-p-grp {
> +		fsl,pins = <MX6QDL_PAD_GPIO_18__GPIO7_IO13	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_q: dhcom-q-grp {
> +		fsl,pins = <MX6QDL_PAD_SD1_CMD__GPIO1_IO18	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_r: dhcom-r-grp {
> +		fsl,pins = <MX6QDL_PAD_SD1_DAT0__GPIO1_IO16	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_s: dhcom-s-grp {
> +		fsl,pins = <MX6QDL_PAD_SD1_DAT1__GPIO1_IO17	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_t: dhcom-t-grp {
> +		fsl,pins = <MX6QDL_PAD_SD1_DAT2__GPIO1_IO19	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_u: dhcom-u-grp {
> +		fsl,pins = <MX6QDL_PAD_SD1_CLK__GPIO1_IO20	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_v: dhcom-v-grp {
> +		fsl,pins = <MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_w: dhcom-w-grp {
> +		fsl,pins = <MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19	0x400120b0>;
> +	};
> +
> +	pinctrl_dhcom_int: dhcom-int-grp {
> +		fsl,pins = <MX6QDL_PAD_KEY_COL0__GPIO4_IO06	0x400120b0>;
> +	};
> +
>  	pinctrl_ecspi1: ecspi1-grp {
>  		fsl,pins = <
>  			MX6QDL_PAD_EIM_D17__ECSPI1_MISO		0x100b1
> -- 
> 2.11.0
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-07-23  6:42 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-14 21:06 [PATCH V6 01/15] ARM: dts: imx6q-dhcom: Add the parallel system bus Christoph Niedermaier
2021-07-14 21:07 ` [PATCH V6 02/15] ARM: dts: imx6q-dhcom: Add interrupt and compatible to the ethernet PHY Christoph Niedermaier
2021-07-23  3:59   ` Shawn Guo
2021-07-14 21:07 ` [PATCH V6 03/15] ARM: dts: imx6q-dhcom: Fill GPIO line names on DHCOM SoM Christoph Niedermaier
2021-07-23  4:01   ` Shawn Guo
2021-07-14 21:07 ` [PATCH V6 04/15] ARM: dts: imx6q-dhcom: Adding Wake pin to the PCIe pinctrl Christoph Niedermaier
2021-07-23  4:03   ` Shawn Guo
2021-07-14 21:07 ` [PATCH V6 05/15] ARM: dts: imx6q-dhcom: Align stdout-path with other DHCOM SoMs Christoph Niedermaier
2021-07-23  4:06   ` Shawn Guo
2021-07-14 21:07 ` [PATCH V6 06/15] ARM: dts: imx6q-dhcom: Add keys and leds to the PDK2 board Christoph Niedermaier
2021-07-23  4:07   ` Shawn Guo
2021-07-14 21:07 ` [PATCH V6 07/15] ARM: dts: imx6q-dhcom: Use 1G ethernet on " Christoph Niedermaier
2021-07-23  6:30   ` Shawn Guo
2021-07-14 21:07 ` [PATCH V6 08/15] ARM: dts: imx6q-dhcom: Rework of the DHCOM GPIO pinctrls Christoph Niedermaier
2021-07-23  6:40   ` Shawn Guo [this message]
2021-07-14 21:07 ` [PATCH V6 09/15] ARM: dts: imx6q-dhcom: Remove ddc-i2c-bus property Christoph Niedermaier
2021-07-23  6:41   ` Shawn Guo
2021-07-14 21:07 ` [PATCH V6 10/15] ARM: dts: imx6q-dhcom: Set minimum memory size of all DHCOM i.MX6 variants Christoph Niedermaier
2021-07-23  6:48   ` Shawn Guo
2021-07-14 21:07 ` [PATCH V6 11/15] ARM: dts: imx6q-dhcom: Rearrange of iomux Christoph Niedermaier
2021-07-14 21:07 ` [PATCH V6 12/15] ARM: dts: imx6q-dhcom: Cleanup of the devicetrees Christoph Niedermaier
2021-07-14 21:07 ` [PATCH V6 13/15] ARM: dts: imx6qdl-dhcom: Split SoC-independent parts of DHCOM SOM and PDK2 Christoph Niedermaier
2021-07-14 21:07 ` [PATCH V6 14/15] ARM: dts: imx6qdl-dhcom: Add DHCOM based PicoITX board Christoph Niedermaier
2021-07-14 21:07 ` [PATCH V6 15/15] ARM: dts: imx6qdl-dhcom: Add DHSOM based DRC02 board Christoph Niedermaier
2021-07-18 15:33   ` Fabio Estevam
2021-07-18 16:04     ` Marek Vasut
2021-07-23  7:08       ` Shawn Guo
2021-07-18 15:31 ` [PATCH V6 01/15] ARM: dts: imx6q-dhcom: Add the parallel system bus Fabio Estevam
2021-07-18 16:21   ` Marek Vasut
2021-07-23  3:56 ` Shawn Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210723064022.GQ28658@dragon \
    --to=shawnguo@kernel.org \
    --cc=cniedermaier@dh-electronics.com \
    --cc=festevam@denx.de \
    --cc=kernel@dh-electronics.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=marex@denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.