Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: cm-t3x: add NAND support

CM-T3517, CM-T3530 and CM-T3730 features NAND storage chip connected to
GPMC bus.

Add GPMC DT entry into the root DT file omap3-cm-t3x.dtsi, common for
all three modules.

NAND timings are calculated to be safe for CM-T3x devices as it works
now in non DT boot (in this case the timings are updated by U-Boot).

Update GPMC ranges in boards DT files to include all connected devices.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Acked-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>

authored by

Dmitry Lifshitz and committed by
Tony Lindgren
df73b7f8 7a03f2c0

+70 -10
+58
arch/arm/boot/dts/omap3-cm-t3x.dtsi
··· 259 259 pinctrl-names = "default"; 260 260 pinctrl-0 = <&mcbsp2_pins>; 261 261 }; 262 + 263 + &gpmc { 264 + ranges = <0 0 0x00000000 0x01000000>; 265 + 266 + nand@0,0 { 267 + reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ 268 + nand-bus-width = <8>; 269 + gpmc,device-width = <1>; 270 + ti,nand-ecc-opt = "sw"; 271 + 272 + gpmc,cs-on-ns = <0>; 273 + gpmc,cs-rd-off-ns = <120>; 274 + gpmc,cs-wr-off-ns = <120>; 275 + 276 + gpmc,adv-on-ns = <0>; 277 + gpmc,adv-rd-off-ns = <120>; 278 + gpmc,adv-wr-off-ns = <120>; 279 + 280 + gpmc,we-on-ns = <6>; 281 + gpmc,we-off-ns = <90>; 282 + 283 + gpmc,oe-on-ns = <6>; 284 + gpmc,oe-off-ns = <90>; 285 + 286 + gpmc,page-burst-access-ns = <6>; 287 + gpmc,access-ns = <72>; 288 + gpmc,cycle2cycle-delay-ns = <60>; 289 + 290 + gpmc,rd-cycle-ns = <120>; 291 + gpmc,wr-cycle-ns = <120>; 292 + gpmc,wr-access-ns = <186>; 293 + gpmc,wr-data-mux-bus-ns = <90>; 294 + 295 + #address-cells = <1>; 296 + #size-cells = <1>; 297 + 298 + partition@0 { 299 + label = "xloader"; 300 + reg = <0 0x80000>; 301 + }; 302 + partition@0x80000 { 303 + label = "uboot"; 304 + reg = <0x80000 0x1e0000>; 305 + }; 306 + partition@0x260000 { 307 + label = "uboot environment"; 308 + reg = <0x260000 0x40000>; 309 + }; 310 + partition@0x2a0000 { 311 + label = "linux"; 312 + reg = <0x2a0000 0x400000>; 313 + }; 314 + partition@0x6a0000 { 315 + label = "rootfs"; 316 + reg = <0x6a0000 0x1f880000>; 317 + }; 318 + }; 319 + };
+2 -1
arch/arm/boot/dts/omap3-cm-t3x30.dtsi
··· 50 50 #include "omap-gpmc-smsc911x.dtsi" 51 51 52 52 &gpmc { 53 - ranges = <5 0 0x2c000000 0x01000000>; 53 + ranges = <5 0 0x2c000000 0x01000000>, /* CM-T3x30 SMSC9x Eth */ 54 + <0 0 0x00000000 0x01000000>; /* CM-T3x NAND */ 54 55 55 56 smsc1: ethernet@gpmc { 56 57 compatible = "smsc,lan9221", "smsc,lan9115";
+4
arch/arm/boot/dts/omap3-sbc-t3517.dts
··· 69 69 }; 70 70 }; 71 71 72 + &gpmc { 73 + ranges = <4 0 0x2d000000 0x01000000>, /* SB-T35 SMSC9x Eth */ 74 + <0 0 0x00000000 0x01000000>; /* CM-T3x NAND */ 75 + };
+3 -7
arch/arm/boot/dts/omap3-sbc-t3530.dts
··· 26 26 }; 27 27 }; 28 28 29 - /* 30 - * The following ranges correspond to SMSC9x eth chips on CM-T3530 CoM and 31 - * SB-T35 baseboard respectively. 32 - * This setting includes both chips in SBC-T3530 board device tree. 33 - */ 34 29 &gpmc { 35 - ranges = <5 0 0x2c000000 0x01000000>, 36 - <4 0 0x2d000000 0x01000000>; 30 + ranges = <5 0 0x2c000000 0x01000000>, /* CM-T3x30 SMSC9x Eth */ 31 + <4 0 0x2d000000 0x01000000>, /* SB-T35 SMSC9x Eth */ 32 + <0 0 0x00000000 0x01000000>; /* CM-T3x NAND */ 37 33 }; 38 34 39 35 &mmc1 {
+3 -2
arch/arm/boot/dts/omap3-sbc-t3730.dts
··· 27 27 }; 28 28 29 29 &gpmc { 30 - ranges = <5 0 0x2c000000 0x01000000>, 31 - <4 0 0x2d000000 0x01000000>; 30 + ranges = <5 0 0x2c000000 0x01000000>, /* CM-T3x30 SMSC9x Eth */ 31 + <4 0 0x2d000000 0x01000000>, /* SB-T35 SMSC9x Eth */ 32 + <0 0 0x00000000 0x01000000>; /* CM-T3x NAND */ 32 33 }; 33 34 34 35 &dss {