doubt about where to put pin-mux in MX28 based platform DT

Maxime Ripard maxime.ripard at free-electrons.com
Thu Mar 7 08:06:27 EST 2013


Hi Hector,

Le 06/03/2013 18:02, Hector Palacios a écrit :
> I'm creating the DT for a custom platform based on Freescale MX28 CPU
> and I have some doubts about where to add some pin mux configurations:
> whether in imx28.dtsi or in my platform dts.
> 
> A pair of examples folow:
> 
> Example #1. My platform is using a valid IOMUX for DUART TX/RX lines
> which is not covered in imx28.dtsi, namely the I2C0 pins. Since this is
> a valid IOMUX that can be used by other platforms, I'd say I should
> included it in imx28.dtsi:
> 
> diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
> index 3fa6d19..8928b7b 100644
> --- a/arch/arm/boot/dts/imx28.dtsi
> +++ b/arch/arm/boot/dts/imx28.dtsi
> @@ -186,6 +186,17 @@
>                                         fsl,pull-up = <0>;
>                                 };
> 
> +                               duart_pins_c: duart at 2 {
> +                                       reg = <2>;
> +                                       fsl,pinmux-ids = <
> +                                               0x3182 /*
> MX28_PAD_I2C0_SCL__DUART_RX */
> +                                               0x3192 /*
> MX28_PAD_I2C0_SDA__DUART_TX */
> +                                       >;
> +                                       fsl,drive-strength = <0>;
> +                                       fsl,voltage = <1>;
> +                                       fsl,pull-up = <0>;
> +                               };
> +
>                                 duart_4pins_a: duart-4pins at 0 {
>                                         reg = <0>;
>                                         fsl,pinmux-ids = <

That's right.

> Example #2. My platform assembles a NAND chip which is powered at 1.8V.
> The imx28.dtsi has a configuration 'gpmi_pins_a: gpmi-nand at 0' that
> configures the pins at 3.3V.
> Should I create another entry here 'gpmi_pins_b: gpmi-nand at 1' with
> fsl,voltage = <0>; or should I create a specific entry in my platform's
> DT instead?
> What is the convention?

Since it's the same pinset, I'd rather go for using gpmi_pins_a in your
NAND chip node, but also overload the fsl,voltage property of
gpmi_pins_a in your board device tree.

That would give something like

pinctrl at 80018000 {
	gpmi_pins_a: gpmi-nand at 0 {
		fsl,voltage = <0>;
	};
};

nand at deadbeef {
	pinctrl-names = "default";
	pinctrl-0 = <&gpmi_pins_a>;
}

But maybe Sascha will have a different view on this.

Maxime

-- 
Maxime Ripard, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the linux-arm-kernel mailing list