Patchwork [v2,3/3] ARM: dts: AM33XX: Add NAND flash device tree data to am335x-evm

login
register
mail settings
Submitter pekon gupta
Date April 29, 2013, 7:55 a.m.
Message ID <ebfab3e9123b3e50b9a9678c1480191addd86d59.1359007746.git.avinashphilip@ti.com>
Download mbox | patch
Permalink /patch/240336/
State Not Applicable
Headers show

Comments

pekon gupta - April 29, 2013, 7:55 a.m.
From: avinash philip <avinashphilip@ti.com>

NAND flash connected in am335x-evm on GPMC controller. This patch adds
device tree node in am3355-evm with GPMC contoller timing for NAND flash
interface, NAND partition table, ECC scheme, elm handle id.

Signed-off-by: Philip Avinash <avinashphilip@ti.com>
Tested-by: Pekon Gupta <pekon@ti.com>

---
arch/arm/boot/dts/am335x-evm.dts |   98 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 97 insertions(+), 1 deletion(-)
Sekhar Nori - April 30, 2013, 5:05 a.m.
On 4/29/2013 1:25 PM, Gupta, Pekon wrote:
> From: avinash philip <avinashphilip@ti.com>
> 
> NAND flash connected in am335x-evm on GPMC controller. This patch adds
> device tree node in am3355-evm with GPMC contoller timing for NAND flash
> interface, NAND partition table, ECC scheme, elm handle id.
> 
> Signed-off-by: Philip Avinash <avinashphilip@ti.com>
> Tested-by: Pekon Gupta <pekon@ti.com>
> 
> ---
> arch/arm/boot/dts/am335x-evm.dts |   98 +++++++++++++++++++++++++++++++++++++-
>  1 file changed, 97 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
> index 0423298..1c2fd89 100644
> --- a/arch/arm/boot/dts/am335x-evm.dts
> +++ b/arch/arm/boot/dts/am335x-evm.dts
> @@ -26,7 +26,8 @@
>  
>  	am33xx_pinmux: pinmux@44e10800 {
>  		pinctrl-names = "default";
> -		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>;
> +		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0
> +			&nandflash_pins_s0>;

Why add this to the board level fallback (called pinctrl hogs, I think)?
This can be part of nand node you added below so that the pinctrl will
take effect when nand gets probed instead of all the time.

Thanks,
Sekhar
Tony Lindgren - May 8, 2013, 11:54 p.m.
* Sekhar Nori <nsekhar@ti.com> [130429 22:11]:
> 
> On 4/29/2013 1:25 PM, Gupta, Pekon wrote:
> > From: avinash philip <avinashphilip@ti.com>
> > 
> > NAND flash connected in am335x-evm on GPMC controller. This patch adds
> > device tree node in am3355-evm with GPMC contoller timing for NAND flash
> > interface, NAND partition table, ECC scheme, elm handle id.
> > 
> > Signed-off-by: Philip Avinash <avinashphilip@ti.com>
> > Tested-by: Pekon Gupta <pekon@ti.com>
> > 
> > ---
> > arch/arm/boot/dts/am335x-evm.dts |   98 +++++++++++++++++++++++++++++++++++++-
> >  1 file changed, 97 insertions(+), 1 deletion(-)
> > 
> > diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
> > index 0423298..1c2fd89 100644
> > --- a/arch/arm/boot/dts/am335x-evm.dts
> > +++ b/arch/arm/boot/dts/am335x-evm.dts
> > @@ -26,7 +26,8 @@
> >  
> >  	am33xx_pinmux: pinmux@44e10800 {
> >  		pinctrl-names = "default";
> > -		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>;
> > +		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0
> > +			&nandflash_pins_s0>;
> 
> Why add this to the board level fallback (called pinctrl hogs, I think)?
> This can be part of nand node you added below so that the pinctrl will
> take effect when nand gets probed instead of all the time.

Yes we should have all the pinctrl entries under the related drivers.
This makes it easy remux pins during runtime if needed, and also
allows unloading pinctrl-single.ko for development.

Regards,

Tony
pekon gupta - May 9, 2013, 4:12 a.m.
> > >
> > >  	am33xx_pinmux: pinmux@44e10800 {
> > >  		pinctrl-names = "default";
> > > -		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>;
> > > +		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0
> > > +			&nandflash_pins_s0>;
> >
> > Why add this to the board level fallback (called pinctrl hogs, I think)?
> > This can be part of nand node you added below so that the pinctrl will
> > take effect when nand gets probed instead of all the time.
> 
> Yes we should have all the pinctrl entries under the related drivers.
> This makes it easy remux pins during runtime if needed, and also
> allows unloading pinctrl-single.ko for development.
> 
Yes, accepted. This has been already fixed in v3 of this patch set.
If all fine, then please pull this for next merge..

http://lists.infradead.org/pipermail/linux-mtd/2013-May/046712.html

http://lists.infradead.org/pipermail/linux-mtd/2013-May/046814.html (already pulled)

http://lists.infradead.org/pipermail/linux-mtd/2013-May/046710.html


with regards, pekon
pekon gupta - May 20, 2013, 4:44 a.m.
> > > >
> > > >  	am33xx_pinmux: pinmux@44e10800 {
> > > >  		pinctrl-names = "default";
> > > > -		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>;
> > > > +		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0
> > > > +			&nandflash_pins_s0>;
> > >
> > > Why add this to the board level fallback (called pinctrl hogs, I think)?
> > > This can be part of nand node you added below so that the pinctrl will
> > > take effect when nand gets probed instead of all the time.
> >
> > Yes we should have all the pinctrl entries under the related drivers.
> > This makes it easy remux pins during runtime if needed, and also
> > allows unloading pinctrl-single.ko for development.
> >
> Yes, accepted. This has been already fixed in v3 of this patch set.
> If all fine, then please pull this for next merge..
> 
> http://lists.infradead.org/pipermail/linux-mtd/2013-May/046712.html
> 
> http://lists.infradead.org/pipermail/linux-mtd/2013-May/046814.html
> 
> http://lists.infradead.org/pipermail/linux-mtd/2013-May/046710.html
> 
> 
> with regards, pekon

Request you to please accept | provide feedbacks on this patch series.
These are waiting acceptance since Jan-2013, and are necessary for 
DT based configs for board having NAND support.

with regards, pekon
Cousson, Benoit - May 30, 2013, 7:24 a.m.
Hi Pekon,

On 05/20/2013 06:44 AM, Gupta, Pekon wrote:
>  
>>>>>
>>>>>  	am33xx_pinmux: pinmux@44e10800 {
>>>>>  		pinctrl-names = "default";
>>>>> -		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>;
>>>>> +		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0
>>>>> +			&nandflash_pins_s0>;
>>>>
>>>> Why add this to the board level fallback (called pinctrl hogs, I think)?
>>>> This can be part of nand node you added below so that the pinctrl will
>>>> take effect when nand gets probed instead of all the time.
>>>
>>> Yes we should have all the pinctrl entries under the related drivers.
>>> This makes it easy remux pins during runtime if needed, and also
>>> allows unloading pinctrl-single.ko for development.
>>>
>> Yes, accepted. This has been already fixed in v3 of this patch set.
>> If all fine, then please pull this for next merge..
>>
>> http://lists.infradead.org/pipermail/linux-mtd/2013-May/046712.html
>>
>> http://lists.infradead.org/pipermail/linux-mtd/2013-May/046814.html
>>
>> http://lists.infradead.org/pipermail/linux-mtd/2013-May/046710.html
>>
>>
>> with regards, pekon
> 
> Request you to please accept | provide feedbacks on this patch series.
> These are waiting acceptance since Jan-2013, and are necessary for 
> DT based configs for board having NAND support.
> 
> with regards, pekon

Sorry, I missed that series.

I'm applying it right now.

Thanks,
Benoit
pekon gupta - May 30, 2013, 7:31 a.m.
> Sorry, I missed that series.
> 
> I'm applying it right now.
> 
No issues.. Please pick newer v4 versions of this series.
Following are rebased, updated and tested on linux-3.10-rc3

[PATCH v4,0/3] http://www.spinics.net/lists/linux-omap/msg91165.html

[PATCH v4,1/3] http://www.spinics.net/lists/linux-omap/msg91166.html

[PATCH v4,2/3] (please skip this one)
instead pick http://www.spinics.net/lists/linux-omap/msg91161.html

[PATCH v4,3/3] http://www.spinics.net/lists/linux-omap/msg91167.html


Thanks..
with regards, pekon
pekon gupta - May 30, 2013, 7:36 a.m.
> > Sorry, I missed that series.
> >
> > I'm applying it right now.
> >
> No issues.. Please pick newer v4 versions of this series.
> Following are rebased, updated and tested on linux-3.10-rc3
> 
> [PATCH v4,0/3] http://www.spinics.net/lists/linux-omap/msg91165.html
> 
> [PATCH v4,1/3] http://www.spinics.net/lists/linux-omap/msg91166.html
> 
> [PATCH v4,2/3] (please skip this one)
> instead pick http://www.spinics.net/lists/linux-omap/msg91161.html
> 
> [PATCH v4,3/3] (typo) 
	http://www.spinics.net/lists/linux-omap/msg91164.html
> 
> 
> Thanks..
> with regards, pekon
> 
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
Cousson, Benoit - May 30, 2013, 7:39 a.m.
On 05/30/2013 09:31 AM, Gupta, Pekon wrote:
>> Sorry, I missed that series.
>>
>> I'm applying it right now.
>>
> No issues.. Please pick newer v4 versions of this series.
> Following are rebased, updated and tested on linux-3.10-rc3
> 
> [PATCH v4,0/3] http://www.spinics.net/lists/linux-omap/msg91165.html
> 
> [PATCH v4,1/3] http://www.spinics.net/lists/linux-omap/msg91166.html
> 
> [PATCH v4,2/3] (please skip this one)
> instead pick http://www.spinics.net/lists/linux-omap/msg91161.html
> 
> [PATCH v4,3/3] http://www.spinics.net/lists/linux-omap/msg91167.html

Could you please rebase on for_3.11/dts and repost the whole stuff. It
looks like Tony already pulled the GPMC node, and the two other ones
cannot apply anymore.

Thanks,
Benoit

Patch

diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 0423298..1c2fd89 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -26,7 +26,8 @@ 
 
 	am33xx_pinmux: pinmux@44e10800 {
 		pinctrl-names = "default";
-		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>;
+		pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0
+			&nandflash_pins_s0>;
 
 		matrix_keypad_s0: matrix_keypad_s0 {
 			pinctrl-single,pins = <
@@ -44,6 +45,26 @@ 
 				0x154 0x27	/* spi0_d0.gpio0_3, INPUT | MODE7 */
 			>;
 		};
+
+		nandflash_pins_s0: nandflash_pins_s0 {
+			pinctrl-single,pins = <
+				0x0 0x30	/* gpmc_ad0.gpmc_ad0, INPUT | PULLUP | MODE0 */
+				0x4 0x30	/* gpmc_ad1.gpmc_ad1, INPUT | PULLUP | MODE0 */
+				0x8 0x30	/* gpmc_ad2.gpmc_ad2, INPUT | PULLUP | MODE0 */
+				0xc 0x30	/* gpmc_ad3.gpmc_ad3, INPUT | PULLUP | MODE0 */
+				0x10 0x30	/* gpmc_ad4.gpmc_ad4, INPUT | PULLUP | MODE0 */
+				0x14 0x30	/* gpmc_ad5.gpmc_ad5, INPUT | PULLUP | MODE0 */
+				0x18 0x30	/* gpmc_ad6.gpmc_ad6, INPUT | PULLUP | MODE0 */
+				0x1c 0x30	/* gpmc_ad7.gpmc_ad7, INPUT | PULLUP | MODE0 */
+				0x70 0x30	/* gpmc_wait0.gpmc_wait0, INPUT | PULLUP | MODE0 */
+				0x74 0x37	/* gpmc_wpn.gpio0_30, INPUT | PULLUP | MODE7 */
+				0x7c 0x8	/* gpmc_csn0.gpmc_csn0,  PULL DISA */
+				0x90 0x8	/* gpmc_advn_ale.gpmc_advn_ale, PULL DISA */
+				0x94 0x8	/* gpmc_oen_ren.gpmc_oen_ren, PULL DISA */
+				0x98 0x8	/* gpmc_wen.gpmc_wen, PULL DISA */
+				0x9c 0x8	/* gpmc_be0n_cle.gpmc_be0n_cle, PULL DISA */
+			>;
+		};
 	};
 
 	ocp {
@@ -102,6 +123,81 @@ 
 				reg = <0x48>;
 			};
 		};
+
+		elm: elm@48080000 {
+			status = "okay";
+		};
+
+		gpmc: gpmc@50000000 {
+			status = "okay";
+			ranges = <0 0 0x08000000 0x10000000>;	/* CS0: NAND */
+
+			nand@0,0 {
+				reg = <0 0 0>; /* CS0, offset 0 */
+				nand-bus-width = <8>;
+				ti,nand-ecc-opt = "bch8";
+
+				gpmc,sync-clk = <0>;
+				gpmc,cs-on = <0>;
+				gpmc,cs-rd-off = <44>;
+				gpmc,cs-wr-off = <44>;
+				gpmc,adv-on = <6>;
+				gpmc,adv-rd-off = <34>;
+				gpmc,adv-wr-off = <44>;
+				gpmc,we-off = <40>;
+				gpmc,oe-off = <54>;
+				gpmc,access = <64>;
+				gpmc,rd-cycle = <82>;
+				gpmc,wr-cycle = <82>;
+				gpmc,wr-access = <40>;
+				gpmc,wr-data-mux-bus = <0>;
+
+				#address-cells = <1>;
+				#size-cells = <1>;
+				elm_id = <&elm>;
+
+				/* MTD partition table */
+				partition@0 {
+					label = "SPL1";
+					reg = <0x00000000 0x000020000>;
+				};
+
+				partition@1 {
+					label = "SPL2";
+					reg = <0x00020000 0x00020000>;
+				};
+
+				partition@2 {
+					label = "SPL3";
+					reg = <0x00040000 0x00020000>;
+				};
+
+				partition@3 {
+					label = "SPL4";
+					reg = <0x00060000 0x00020000>;
+				};
+
+				partition@4 {
+					label = "U-boot";
+					reg = <0x00080000 0x001e0000>;
+				};
+
+				partition@5 {
+					label = "environment";
+					reg = <0x00260000 0x00020000>;
+				};
+
+				partition@6 {
+					label = "Kernel";
+					reg = <0x00280000 0x00500000>;
+				};
+
+				partition@7 {
+					label = "File-System";
+					reg = <0x00780000 0x0F880000>;
+				};
+			};
+		};
 	};
 
 	vbat: fixedregulator@0 {