Subject: [PATCH 1/2] ARM: davinci: da850: add pinctrl driver entries

From: [email-masked] (Sekhar Nori)
Date: Mon, 7 Jan 2013 20:35:37 +0530

Hi Anil,

On 12/7/2012 3:57 PM, Kumar, Anil wrote:
> For DT, DaVinci platform can use pinctrl-single driver for handling
> padconf registers.
> 
> Enable PINCTRL Kconfig for all DaVinci platform. Add required
> pinctrl DT entries in da850 dts file.
> 
> Test procedure
>  1)Populate DT file with NAND node information.
>  2)Populate board DT file with pinmux information for NAND.
>  3)Boot and confirm NAND is detected by the kernel.
>  4)cat /proc/mtd to show partitions.
> 
> Signed-off-by: Kumar, Anil <[email-masked]>
> ---
> :000000 100644 0000000... f999d9e... A	Documentation/devicetree/bindings/arm/davinci/pinctrl.txt
> :100644 100644 06e0adf... 54a5405... M	arch/arm/Kconfig
> :100644 100644 37dc5a3... 8cac9d2... M	arch/arm/boot/dts/da850-evm.dts
> :100644 100644 fbada87... 94471bc... M	arch/arm/boot/dts/da850.dtsi
> :100644 100644 f292239... 0892db4... M	arch/arm/configs/da8xx_omapl_defconfig
>  .../devicetree/bindings/arm/davinci/pinctrl.txt    |   29 ++++++++++++++++++++
>  arch/arm/Kconfig                                   |    1 +
>  arch/arm/boot/dts/da850-evm.dts                    |    3 ++
>  arch/arm/boot/dts/da850.dtsi                       |   10 +++++++
>  arch/arm/configs/da8xx_omapl_defconfig             |    1 +
>  5 files changed, 44 insertions(+), 0 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/arm/davinci/pinctrl.txt b/Documentation/devicetree/bindings/arm/davinci/pinctrl.txt
> new file mode 100644
> index 0000000..f999d9e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/davinci/pinctrl.txt
> @@ -0,0 +1,29 @@
> +* Texas Instruments Davinci pinctrl-single
> +
> +This file provides information, what the device node for the
> +davinci pinctrl-single interface contain.
> +
> +Required properties:
> +- compatible: "pinctrl-single";
> +
> +- reg : offset and length of the register set for the mux registers
> +
> +- pinctrl-single,bit-per-mux: mask of allowed pinmux function bits in the
> +  pinmux register
> +
> +- pinctrl-single,register-width: pinmux register access width in bits
> +
> +- pinctrl-single,function-mask:  mask of allowed pinmux function bits in
> +  the pinmux register
> +
> +Example:
> +pmx_core:pinmux at 14120 {
> +		compatible = "pinctrl-single";
> +		reg = <0x14120 0x50>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		pinctrl-single,bit-per-mux;
> +		pinctrl-single,register-width = <32>;
> +		pinctrl-single,function-mask = <0xffffffff>;
> +};

These bindings are already documented as part of
Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt. No need to
repeat.

> +~
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 06e0adf..54a5405 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -924,6 +924,7 @@ config ARCH_DAVINCI
>  	select GENERIC_IRQ_CHIP
>  	select HAVE_IDE
>  	select NEED_MACH_GPIO_H
> +	select PINCTRL

No need to force this across DaVinci. You can select only for MACH_DA8XX_DT.

>  	select USE_OF
>  	select ZONE_DMA
>  	help
> diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
> index 37dc5a3..8cac9d2 100644
> --- a/arch/arm/boot/dts/da850-evm.dts
> +++ b/arch/arm/boot/dts/da850-evm.dts
> @@ -15,6 +15,9 @@
>  	model = "DA850/AM1808/OMAP-L138 EVM";
>  
>  	soc {
> +		pmx_core:pinmux at 14120 {

'pmx_core:pinmux at 1c14120' instead like the way uart is defined?

> +			status = "okay";
> +		};
>  		serial0: serial at 1c42000 {
>  			status = "okay";
>  		};
> diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
> index fbada87..94471bc 100644
> --- a/arch/arm/boot/dts/da850.dtsi
> +++ b/arch/arm/boot/dts/da850.dtsi
> @@ -29,6 +29,16 @@
>  		#size-cells = <1>;
>  		ranges = <0x0 0x01c00000 0x400000>;
>  
> +		pmx_core:pinmux at 14120 {
> +			compatible = "pinctrl-single";
> +			reg = <0x14120 0x50>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			pinctrl-single,bit-per-mux;
> +			pinctrl-single,register-width = <32>;
> +			pinctrl-single,function-mask = <0xffffffff>;
> +			status = "disabled";
> +		};
>  		serial0: serial at 1c42000 {
>  			compatible = "ns16550a";
>  			reg = <0x42000 0x100>;
> diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig
> index f292239..0892db4 100644
> --- a/arch/arm/configs/da8xx_omapl_defconfig
> +++ b/arch/arm/configs/da8xx_omapl_defconfig

I would like the defconfig changes to be separated out into a different
patch.

Thanks,
Sekhar