aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2017-06-19 01:54:10 -0400
committerOlof Johansson <olof@lixom.net>2017-06-19 01:54:10 -0400
commitc9487f03875a229ee37528ab4e84ce543b25d57c (patch)
tree2c5caf7b9bf8a9227ed1360e9235c65d6fa27804
parent1161a0d50a0253ff92e649578f1af688ca9bd1ba (diff)
parentbc03ce08396786c92d6591a81682c7da7accbfc8 (diff)
Merge tag 'at91-ab-4.13-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/dt
DT for 4.13 - Switch to the new NAND binding - A few non urgent fixes * tag 'at91-ab-4.13-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: ARM: dts: at91: sama5d2_xplained: remove wrong memory node ARM: dts: at91: sama5d2_xplained: add pwm controller ARM: dts: at91: Add the NOR flash available on sama5d3 dev kits ARM: dts: at91: Switch to the new NAND bindings ARM: dts: at91: Declare EBI/NAND controllers dt-bindings: mtd: atmel-nand: Document the nfc-io bindings ARM: dts: at91-sama5d4: use IRQ_TYPE_* to specify irq flags dts: gpio_atmel: adapt binding doc to reality ARM: dts: at91: sama5d2: add m_can nodes ARM: dts: at91: Add generic compatible string for I2C EEPROM Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio_atmel.txt10
-rw-r--r--Documentation/devicetree/bindings/mtd/atmel-nand.txt14
-rw-r--r--arch/arm/boot/dts/aks-cdu.dts56
-rw-r--r--arch/arm/boot/dts/animeo_ip.dts53
-rw-r--r--arch/arm/boot/dts/at91-cosino.dtsi83
-rw-r--r--arch/arm/boot/dts/at91-kizbox.dts42
-rw-r--r--arch/arm/boot/dts/at91-kizbox2.dts45
-rw-r--r--arch/arm/boot/dts/at91-kizboxmini.dts52
-rw-r--r--arch/arm/boot/dts/at91-linea.dtsi27
-rw-r--r--arch/arm/boot/dts/at91-qil_a9260.dts103
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_xplained.dts32
-rw-r--r--arch/arm/boot/dts/at91-sama5d3_xplained.dts97
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi4
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_xplained.dts83
-rw-r--r--arch/arm/boot/dts/at91-sama5d4ek.dts83
-rw-r--r--arch/arm/boot/dts/at91-tse850-3.dts72
-rw-r--r--arch/arm/boot/dts/at91sam9260.dtsi65
-rw-r--r--arch/arm/boot/dts/at91sam9261.dtsi48
-rw-r--r--arch/arm/boot/dts/at91sam9261ek.dts83
-rw-r--r--arch/arm/boot/dts/at91sam9263.dtsi89
-rw-r--r--arch/arm/boot/dts/at91sam9263ek.dts103
-rw-r--r--arch/arm/boot/dts/at91sam9g20ek_common.dtsi103
-rw-r--r--arch/arm/boot/dts/at91sam9g45.dtsi64
-rw-r--r--arch/arm/boot/dts/at91sam9m10g45ek.dts49
-rw-r--r--arch/arm/boot/dts/at91sam9n12.dtsi74
-rw-r--r--arch/arm/boot/dts/at91sam9n12ek.dts26
-rw-r--r--arch/arm/boot/dts/at91sam9rl.dtsi69
-rw-r--r--arch/arm/boot/dts/at91sam9rlek.dts85
-rw-r--r--arch/arm/boot/dts/at91sam9x5.dtsi134
-rw-r--r--arch/arm/boot/dts/at91sam9x5cm.dtsi83
-rw-r--r--arch/arm/boot/dts/ethernut5.dts47
-rw-r--r--arch/arm/boot/dts/ge863-pro3.dtsi41
-rw-r--r--arch/arm/boot/dts/pm9g45.dts99
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi117
-rw-r--r--arch/arm/boot/dts/sama5d3.dtsi131
-rw-r--r--arch/arm/boot/dts/sama5d3xcm.dtsi97
-rw-r--r--arch/arm/boot/dts/sama5d3xcm_cmp.dtsi77
-rw-r--r--arch/arm/boot/dts/sama5d4.dtsi177
-rw-r--r--arch/arm/boot/dts/tny_a9260_common.dtsi89
-rw-r--r--arch/arm/boot/dts/tny_a9263.dts103
-rw-r--r--arch/arm/boot/dts/usb_a9260_common.dtsi103
-rw-r--r--arch/arm/boot/dts/usb_a9263.dts103
42 files changed, 2096 insertions, 1019 deletions
diff --git a/Documentation/devicetree/bindings/gpio/gpio_atmel.txt b/Documentation/devicetree/bindings/gpio/gpio_atmel.txt
index 85f8c0d084fa..29416f9c3220 100644
--- a/Documentation/devicetree/bindings/gpio/gpio_atmel.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio_atmel.txt
@@ -5,9 +5,13 @@ Required properties:
5- reg: Should contain GPIO controller registers location and length 5- reg: Should contain GPIO controller registers location and length
6- interrupts: Should be the port interrupt shared by all the pins. 6- interrupts: Should be the port interrupt shared by all the pins.
7- #gpio-cells: Should be two. The first cell is the pin number and 7- #gpio-cells: Should be two. The first cell is the pin number and
8 the second cell is used to specify optional parameters (currently 8 the second cell is used to specify optional parameters to declare if the GPIO
9 unused). 9 is active high or low. See gpio.txt.
10- gpio-controller: Marks the device node as a GPIO controller. 10- gpio-controller: Marks the device node as a GPIO controller.
11- interrupt-controller: Marks the device node as an interrupt controller.
12- #interrupt-cells: Should be two. The first cell is the pin number and the
13 second cell is used to specify irq type flags, see the two cell description
14 in interrupt-controller/interrupts.txt for details.
11 15
12optional properties: 16optional properties:
13- #gpio-lines: Number of gpio if absent 32. 17- #gpio-lines: Number of gpio if absent 32.
@@ -21,5 +25,7 @@ Example:
21 #gpio-cells = <2>; 25 #gpio-cells = <2>;
22 gpio-controller; 26 gpio-controller;
23 #gpio-lines = <19>; 27 #gpio-lines = <19>;
28 interrupt-controller;
29 #interrupt-cells = <2>;
24 }; 30 };
25 31
diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt
index f6bee57e453a..9bb66e476672 100644
--- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt
+++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt
@@ -59,8 +59,22 @@ Required properties:
59- reg: should contain 2 register ranges. The first one is pointing to the PMECC 59- reg: should contain 2 register ranges. The first one is pointing to the PMECC
60 block, and the second one to the PMECC_ERRLOC block. 60 block, and the second one to the PMECC_ERRLOC block.
61 61
62* SAMA5 NFC I/O bindings:
63
64SAMA5 SoCs embed an advanced NAND controller logic to automate READ/WRITE page
65operations. This interface to this logic is placed in a separate I/O range and
66should thus have its own DT node.
67
68- compatible: should be "atmel,sama5d3-nfc-io", "syscon".
69- reg: should contain the I/O range used to interact with the NFC logic.
70
62Example: 71Example:
63 72
73 nfc_io: nfc-io@70000000 {
74 compatible = "atmel,sama5d3-nfc-io", "syscon";
75 reg = <0x70000000 0x8000000>;
76 };
77
64 pmecc: ecc-engine@ffffc070 { 78 pmecc: ecc-engine@ffffc070 {
65 compatible = "atmel,at91sam9g45-pmecc"; 79 compatible = "atmel,at91sam9g45-pmecc";
66 reg = <0xffffc070 0x490>, 80 reg = <0xffffc070 0x490>,
diff --git a/arch/arm/boot/dts/aks-cdu.dts b/arch/arm/boot/dts/aks-cdu.dts
index 5b1bf92d927c..888bfcd4a402 100644
--- a/arch/arm/boot/dts/aks-cdu.dts
+++ b/arch/arm/boot/dts/aks-cdu.dts
@@ -62,32 +62,36 @@
62 status = "okay"; 62 status = "okay";
63 }; 63 };
64 64
65 nand0: nand@40000000 { 65 ebi: ebi@10000000 {
66 nand-bus-width = <8>; 66 nand_controller: nand-controller {
67 nand-ecc-mode = "soft"; 67 nand: nand@3 {
68 nand-on-flash-bbt; 68 partitions {
69 status = "okay"; 69 bootstrap@0 {
70 70 label = "bootstrap";
71 bootstrap@0 { 71 reg = <0x0 0x40000>;
72 label = "bootstrap"; 72 };
73 reg = <0x0 0x40000>; 73
74 }; 74 uboot@40000 {
75 75 label = "uboot";
76 uboot@40000 { 76 reg = <0x40000 0x80000>;
77 label = "uboot"; 77 };
78 reg = <0x40000 0x80000>; 78
79 }; 79 ubootenv@c0000 {
80 ubootenv@c0000 { 80 label = "ubootenv";
81 label = "ubootenv"; 81 reg = <0xc0000 0x40000>;
82 reg = <0xc0000 0x40000>; 82 };
83 }; 83
84 kernel@100000 { 84 kernel@100000 {
85 label = "kernel"; 85 label = "kernel";
86 reg = <0x100000 0x400000>; 86 reg = <0x100000 0x400000>;
87 }; 87 };
88 rootfs@500000 { 88
89 label = "rootfs"; 89 rootfs@500000 {
90 reg = <0x500000 0x7b00000>; 90 label = "rootfs";
91 reg = <0x500000 0x7b00000>;
92 };
93 };
94 };
91 }; 95 };
92 }; 96 };
93 }; 97 };
diff --git a/arch/arm/boot/dts/animeo_ip.dts b/arch/arm/boot/dts/animeo_ip.dts
index 9cc372b9fb9b..26ade8c0a960 100644
--- a/arch/arm/boot/dts/animeo_ip.dts
+++ b/arch/arm/boot/dts/animeo_ip.dts
@@ -83,25 +83,44 @@
83 }; 83 };
84 }; 84 };
85 85
86 nand0: nand@40000000 { 86 ebi: ebi@10000000 {
87 nand-bus-width = <8>;
88 nand-ecc-mode = "soft";
89 nand-on-flash-bbt;
90 status = "okay"; 87 status = "okay";
91 88
92 barebox@0 { 89 nand_controller: nand-controller {
93 label = "barebox"; 90 status = "okay";
94 reg = <0x0 0x58000>; 91 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
95 }; 92 pinctrl-names = "default";
96 93
97 u_boot_env@58000 { 94 nand@3 {
98 label = "u_boot_env"; 95 reg = <0x3 0x0 0x800000>;
99 reg = <0x58000 0x8000>; 96 rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
100 }; 97 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
101 98 nand-bus-width = <8>;
102 ubi@60000 { 99 nand-ecc-mode = "soft";
103 label = "ubi"; 100 nand-on-flash-bbt;
104 reg = <0x60000 0x1FA0000>; 101 label = "atmel_nand";
102
103 partitions {
104 compatible = "fixed-partitions";
105 #address-cells = <1>;
106 #size-cells = <1>;
107
108 barebox@0 {
109 label = "barebox";
110 reg = <0x0 0x58000>;
111 };
112
113 u_boot_env@58000 {
114 label = "u_boot_env";
115 reg = <0x58000 0x8000>;
116 };
117
118 ubi@60000 {
119 label = "ubi";
120 reg = <0x60000 0x1FA0000>;
121 };
122 };
123 };
105 }; 124 };
106 }; 125 };
107 126
diff --git a/arch/arm/boot/dts/at91-cosino.dtsi b/arch/arm/boot/dts/at91-cosino.dtsi
index 02d8ef43de3a..89cde175154e 100644
--- a/arch/arm/boot/dts/at91-cosino.dtsi
+++ b/arch/arm/boot/dts/at91-cosino.dtsi
@@ -82,38 +82,61 @@
82 }; 82 };
83 }; 83 };
84 84
85 nand0: nand@40000000 { 85 ebi: ebi@10000000 {
86 nand-bus-width = <8>; 86 pinctrl-0 = <&pinctrl_ebi_addr_nand
87 nand-ecc-mode = "hw"; 87 &pinctrl_ebi_data_0_7>;
88 atmel,has-pmecc; /* Enable PMECC */ 88 pinctrl-names = "default";
89 atmel,pmecc-cap = <4>;
90 atmel,pmecc-sector-size = <512>;
91 nand-on-flash-bbt;
92 status = "okay"; 89 status = "okay";
93 90
94 at91bootstrap@0 { 91 nand_controller: nand-controller {
95 label = "at91bootstrap"; 92 status = "okay";
96 reg = <0x0 0x40000>; 93 pinctrl-0 = <&pinctrl_nand_oe_we
97 }; 94 &pinctrl_nand_cs
98 95 &pinctrl_nand_rb>;
99 uboot@40000 { 96 pinctrl-names = "default";
100 label = "u-boot"; 97
101 reg = <0x40000 0x80000>; 98 nand@3 {
102 }; 99 reg = <0x3 0x0 0x800000>;
103 100 rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
104 ubootenv@c0000 { 101 cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
105 label = "U-Boot Env"; 102 nand-bus-width = <8>;
106 reg = <0xc0000 0x140000>; 103 nand-ecc-mode = "hw";
107 }; 104 nand-ecc-strength = <4>;
108 105 nand-ecc-step-size = <512>;
109 kernel@200000 { 106 nand-on-flash-bbt;
110 label = "kernel"; 107 label = "atmel_nand";
111 reg = <0x200000 0x600000>; 108
112 }; 109 partitions {
113 110 compatible = "fixed-partitions";
114 rootfs@800000 { 111 #address-cells = <1>;
115 label = "rootfs"; 112 #size-cells = <1>;
116 reg = <0x800000 0x0f800000>; 113
114 at91bootstrap@0 {
115 label = "at91bootstrap";
116 reg = <0x0 0x40000>;
117 };
118
119 uboot@40000 {
120 label = "u-boot";
121 reg = <0x40000 0x80000>;
122 };
123
124 ubootenv@c0000 {
125 label = "U-Boot Env";
126 reg = <0xc0000 0x140000>;
127 };
128
129 kernel@200000 {
130 label = "kernel";
131 reg = <0x200000 0x600000>;
132 };
133
134 rootfs@800000 {
135 label = "rootfs";
136 reg = <0x800000 0x0f800000>;
137 };
138 };
139 };
117 }; 140 };
118 }; 141 };
119 }; 142 };
diff --git a/arch/arm/boot/dts/at91-kizbox.dts b/arch/arm/boot/dts/at91-kizbox.dts
index b4f147c193fd..1f31df846d61 100644
--- a/arch/arm/boot/dts/at91-kizbox.dts
+++ b/arch/arm/boot/dts/at91-kizbox.dts
@@ -59,19 +59,39 @@
59 status = "okay"; 59 status = "okay";
60 }; 60 };
61 61
62 nand0: nand@40000000 { 62 ebi: ebi@10000000 {
63 nand-bus-width = <8>;
64 nand-ecc-mode = "soft";
65 status = "okay"; 63 status = "okay";
66 64
67 bootstrap@0 { 65 nand_controller: nand-controller {
68 label = "bootstrap"; 66 status = "okay";
69 reg = <0x0 0x20000>; 67 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
70 }; 68 pinctrl-names = "default";
71 69
72 ubi@20000 { 70 nand@3 {
73 label = "ubi"; 71 reg = <0x3 0x0 0x800000>;
74 reg = <0x20000 0x7fe0000>; 72 rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
73 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
74 nand-bus-width = <8>;
75 nand-ecc-mode = "soft";
76 nand-on-flash-bbt;
77 label = "atmel_nand";
78
79 partitions {
80 compatible = "fixed-partitions";
81 #address-cells = <1>;
82 #size-cells = <1>;
83
84 bootstrap@0 {
85 label = "bootstrap";
86 reg = <0x0 0x20000>;
87 };
88
89 ubi@20000 {
90 label = "ubi";
91 reg = <0x20000 0x7fe0000>;
92 };
93 };
94 };
75 }; 95 };
76 }; 96 };
77 }; 97 };
diff --git a/arch/arm/boot/dts/at91-kizbox2.dts b/arch/arm/boot/dts/at91-kizbox2.dts
index 50a14568f094..4372c0287c1c 100644
--- a/arch/arm/boot/dts/at91-kizbox2.dts
+++ b/arch/arm/boot/dts/at91-kizbox2.dts
@@ -141,23 +141,40 @@
141 status = "okay"; 141 status = "okay";
142 }; 142 };
143 143
144 nand0: nand@60000000 { 144 ebi: ebi@10000000 {
145 nand-bus-width = <8>; 145 pinctrl-0 = <&pinctrl_ebi_nand_addr>;
146 nand-ecc-mode = "hw"; 146 pinctrl-names = "default";
147 atmel,has-pmecc;
148 atmel,pmecc-cap = <4>;
149 atmel,pmecc-sector-size = <512>;
150 nand-on-flash-bbt;
151 status = "okay"; 147 status = "okay";
152 148
153 bootstrap@0 { 149 nand_controller: nand-controller {
154 label = "bootstrap"; 150 status = "okay";
155 reg = <0x0 0x20000>; 151
156 }; 152 nand@3 {
153 reg = <0x3 0x0 0x2>;
154 atmel,rb = <0>;
155 nand-bus-width = <8>;
156 nand-ecc-mode = "hw";
157 nand-ecc-strength = <4>;
158 nand-ecc-step-size = <512>;
159 nand-on-flash-bbt;
160 label = "atmel_nand";
161
162 partitions {
163 compatible = "fixed-partitions";
164 #address-cells = <1>;
165 #size-cells = <1>;
166
167 bootstrap@0 {
168 label = "bootstrap";
169 reg = <0x0 0x20000>;
170 };
157 171
158 ubi@20000 { 172 ubi@20000 {
159 label = "ubi"; 173 label = "ubi";
160 reg = <0x20000 0x7fe0000>; 174 reg = <0x20000 0x7fe0000>;
175 };
176 };
177 };
161 }; 178 };
162 }; 179 };
163 }; 180 };
diff --git a/arch/arm/boot/dts/at91-kizboxmini.dts b/arch/arm/boot/dts/at91-kizboxmini.dts
index 9682d105d4d8..33238fcb6d0b 100644
--- a/arch/arm/boot/dts/at91-kizboxmini.dts
+++ b/arch/arm/boot/dts/at91-kizboxmini.dts
@@ -68,6 +68,49 @@
68 status = "okay"; 68 status = "okay";
69 }; 69 };
70 70
71 ebi: ebi@10000000 {
72 pinctrl-0 = <&pinctrl_ebi_addr_nand
73 &pinctrl_ebi_data_0_7>;
74 pinctrl-names = "default";
75 status = "okay";
76
77 nand_controller: nand-controller {
78 status = "okay";
79 pinctrl-0 = <&pinctrl_nand_oe_we
80 &pinctrl_nand_cs
81 &pinctrl_nand_rb>;
82 pinctrl-names = "default";
83
84 nand@3 {
85 reg = <0x3 0x0 0x800000>;
86 rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
87 cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
88 nand-bus-width = <8>;
89 nand-ecc-mode = "hw";
90 nand-ecc-strength = <4>;
91 nand-ecc-step-size = <512>;
92 nand-on-flash-bbt;
93 label = "atmel_nand";
94
95 partitions {
96 compatible = "fixed-partitions";
97 #address-cells = <1>;
98 #size-cells = <1>;
99
100 bootstrap@0 {
101 label = "bootstrap";
102 reg = <0x0 0x20000>;
103 };
104
105 ubi@20000 {
106 label = "ubi";
107 reg = <0x20000 0x7fe0000>;
108 };
109 };
110 };
111 };
112 };
113
71 nand0: nand@40000000 { 114 nand0: nand@40000000 {
72 nand-bus-width = <8>; 115 nand-bus-width = <8>;
73 nand-ecc-mode = "hw"; 116 nand-ecc-mode = "hw";
@@ -77,15 +120,6 @@
77 nand-on-flash-bbt; 120 nand-on-flash-bbt;
78 status = "okay"; 121 status = "okay";
79 122
80 bootstrap@0 {
81 label = "bootstrap";
82 reg = <0x0 0x20000>;
83 };
84
85 ubi@20000 {
86 label = "ubi";
87 reg = <0x20000 0x7fe0000>;
88 };
89 }; 123 };
90 }; 124 };
91 125
diff --git a/arch/arm/boot/dts/at91-linea.dtsi b/arch/arm/boot/dts/at91-linea.dtsi
index 0721c8472509..87e5090fb4c4 100644
--- a/arch/arm/boot/dts/at91-linea.dtsi
+++ b/arch/arm/boot/dts/at91-linea.dtsi
@@ -31,19 +31,30 @@
31 status = "okay"; 31 status = "okay";
32 32
33 eeprom@51 { 33 eeprom@51 {
34 compatible = "st,24c64"; 34 compatible = "st,24c64", "atmel,24c64";
35 reg = <0x51>; 35 reg = <0x51>;
36 pagesize = <32>; 36 pagesize = <32>;
37 }; 37 };
38}; 38};
39 39
40&nand0 { 40&ebi {
41 pinctrl-0 = <&pinctrl_ebi_nand_addr>;
42 pinctrl-names = "default";
41 status = "okay"; 43 status = "okay";
44};
45
42 46
43 nand-bus-width = <8>; 47&nand_controller {
44 nand-ecc-mode = "hw"; 48 status = "okay";
45 atmel,has-pmecc; 49
46 atmel,pmecc-cap = <4>; 50 nand: nand@3 {
47 atmel,pmecc-sector-size = <512>; 51 reg = <0x3 0x0 0x2>;
48 nand-on-flash-bbt; 52 atmel,rb = <0>;
53 nand-bus-width = <8>;
54 nand-ecc-mode = "hw";
55 nand-ecc-strength = <4>;
56 nand-ecc-step-size = <512>;
57 nand-on-flash-bbt;
58 label = "atmel_nand";
59 };
49}; 60};
diff --git a/arch/arm/boot/dts/at91-qil_a9260.dts b/arch/arm/boot/dts/at91-qil_a9260.dts
index 8f019184fccf..f46352790a41 100644
--- a/arch/arm/boot/dts/at91-qil_a9260.dts
+++ b/arch/arm/boot/dts/at91-qil_a9260.dts
@@ -107,50 +107,69 @@
107 status = "okay"; 107 status = "okay";
108 }; 108 };
109 109
110 nand0: nand@40000000 { 110 ebi: ebi@10000000 {
111 nand-bus-width = <8>;
112 nand-ecc-mode = "soft";
113 nand-on-flash-bbt;
114 status = "okay"; 111 status = "okay";
115 112
116 at91bootstrap@0 { 113 nand_controller: nand-controller {
117 label = "at91bootstrap"; 114 status = "okay";
118 reg = <0x0 0x20000>; 115 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
119 }; 116 pinctrl-names = "default";
120 117
121 barebox@20000 { 118 nand@3 {
122 label = "barebox"; 119 reg = <0x3 0x0 0x800000>;
123 reg = <0x20000 0x40000>; 120 rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
124 }; 121 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
125 122 nand-bus-width = <8>;
126 bareboxenv@60000 { 123 nand-ecc-mode = "soft";
127 label = "bareboxenv"; 124 nand-on-flash-bbt;
128 reg = <0x60000 0x20000>; 125 label = "atmel_nand";
129 }; 126
130 127 partitions {
131 bareboxenv2@80000 { 128 compatible = "fixed-partitions";
132 label = "bareboxenv2"; 129 #address-cells = <1>;
133 reg = <0x80000 0x20000>; 130 #size-cells = <1>;
134 }; 131
135 132 at91bootstrap@0 {
136 oftree@a0000 { 133 label = "at91bootstrap";
137 label = "oftree"; 134 reg = <0x0 0x20000>;
138 reg = <0xa0000 0x20000>; 135 };
139 }; 136
140 137 barebox@20000 {
141 kernel@c0000 { 138 label = "barebox";
142 label = "kernel"; 139 reg = <0x20000 0x40000>;
143 reg = <0xc0000 0x400000>; 140 };
144 }; 141
145 142 bareboxenv@60000 {
146 rootfs@4c0000 { 143 label = "bareboxenv";
147 label = "rootfs"; 144 reg = <0x60000 0x20000>;
148 reg = <0x4c0000 0x7800000>; 145 };
149 }; 146
150 147 bareboxenv2@80000 {
151 data@7cc0000 { 148 label = "bareboxenv2";
152 label = "data"; 149 reg = <0x80000 0x20000>;
153 reg = <0x7cc0000 0x8340000>; 150 };
151
152 oftree@a0000 {
153 label = "oftree";
154 reg = <0xa0000 0x20000>;
155 };
156
157 kernel@c0000 {
158 label = "kernel";
159 reg = <0xc0000 0x400000>;
160 };
161
162 rootfs@4c0000 {
163 label = "rootfs";
164 reg = <0x4c0000 0x7800000>;
165 };
166
167 data@7cc0000 {
168 label = "data";
169 reg = <0x7cc0000 0x8340000>;
170 };
171 };
172 };
154 }; 173 };
155 }; 174 };
156 }; 175 };
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
index 0bef9e0b89c6..2e2c3d1a1fa2 100644
--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -56,10 +56,6 @@
56 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
57 }; 57 };
58 58
59 memory {
60 reg = <0x20000000 0x80000>;
61 };
62
63 clocks { 59 clocks {
64 slow_xtal { 60 slow_xtal {
65 clock-frequency = <32768>; 61 clock-frequency = <32768>;
@@ -227,6 +223,10 @@
227 }; 223 };
228 }; 224 };
229 225
226 pwm0: pwm@f802c000 {
227 status = "okay";
228 };
229
230 flx0: flexcom@f8034000 { 230 flx0: flexcom@f8034000 {
231 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>; 231 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
232 status = "disabled"; /* conflict with ISC_D2 & ISC_D3 data pins */ 232 status = "disabled"; /* conflict with ISC_D2 & ISC_D3 data pins */
@@ -258,6 +258,12 @@
258 status = "okay"; 258 status = "okay";
259 }; 259 };
260 260
261 can0: can@f8054000 {
262 pinctrl-names = "default";
263 pinctrl-0 = <&pinctrl_can0_default>;
264 status = "okay";
265 };
266
261 uart3: serial@fc008000 { 267 uart3: serial@fc008000 {
262 atmel,use-dma-rx; 268 atmel,use-dma-rx;
263 atmel,use-dma-tx; 269 atmel,use-dma-tx;
@@ -322,6 +328,18 @@
322 bias-disable; 328 bias-disable;
323 }; 329 };
324 330
331 pinctrl_can0_default: can0_default {
332 pinmux = <PIN_PC10__CANTX0>,
333 <PIN_PC11__CANRX0>;
334 bias-disable;
335 };
336
337 pinctrl_can1_default: can1_default {
338 pinmux = <PIN_PC26__CANTX1>,
339 <PIN_PC27__CANRX1>;
340 bias-disable;
341 };
342
325 pinctrl_charger_chglev: charger_chglev { 343 pinctrl_charger_chglev: charger_chglev {
326 pinmux = <PIN_PA12__GPIO>; 344 pinmux = <PIN_PA12__GPIO>;
327 bias-disable; 345 bias-disable;
@@ -469,6 +487,12 @@
469 }; 487 };
470 488
471 }; 489 };
490
491 can1: can@fc050000 {
492 pinctrl-names = "default";
493 pinctrl-0 = <&pinctrl_can1_default>;
494 status = "okay";
495 };
472 }; 496 };
473 }; 497 };
474 498
diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
index 5a53fcf542ab..3af088d2cba7 100644
--- a/arch/arm/boot/dts/at91-sama5d3_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
@@ -235,46 +235,6 @@
235 }; 235 };
236 }; 236 };
237 237
238 nand0: nand@60000000 {
239 nand-bus-width = <8>;
240 nand-ecc-mode = "hw";
241 atmel,has-pmecc;
242 atmel,pmecc-cap = <4>;
243 atmel,pmecc-sector-size = <512>;
244 nand-on-flash-bbt;
245 status = "okay";
246
247 at91bootstrap@0 {
248 label = "at91bootstrap";
249 reg = <0x0 0x40000>;
250 };
251
252 bootloader@40000 {
253 label = "bootloader";
254 reg = <0x40000 0x80000>;
255 };
256
257 bootloaderenv@c0000 {
258 label = "bootloader env";
259 reg = <0xc0000 0xc0000>;
260 };
261
262 dtb@180000 {
263 label = "device tree";
264 reg = <0x180000 0x80000>;
265 };
266
267 kernel@200000 {
268 label = "kernel";
269 reg = <0x200000 0x600000>;
270 };
271
272 rootfs@800000 {
273 label = "rootfs";
274 reg = <0x800000 0x0f800000>;
275 };
276 };
277
278 usb0: gadget@00500000 { 238 usb0: gadget@00500000 {
279 atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */ 239 atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */
280 pinctrl-names = "default"; 240 pinctrl-names = "default";
@@ -294,6 +254,63 @@
294 usb2: ehci@00700000 { 254 usb2: ehci@00700000 {
295 status = "okay"; 255 status = "okay";
296 }; 256 };
257
258 ebi: ebi@10000000 {
259 pinctrl-0 = <&pinctrl_ebi_nand_addr>;
260 pinctrl-names = "default";
261 status = "okay";
262
263 nand_controller: nand-controller {
264 status = "okay";
265
266 nand@3 {
267 reg = <0x3 0x0 0x2>;
268 atmel,rb = <0>;
269 nand-bus-width = <8>;
270 nand-ecc-mode = "hw";
271 nand-ecc-strength = <4>;
272 nand-ecc-step-size = <512>;
273 nand-on-flash-bbt;
274 label = "atmel_nand";
275
276 partitions {
277 compatible = "fixed-partitions";
278 #address-cells = <1>;
279 #size-cells = <1>;
280
281 at91bootstrap@0 {
282 label = "at91bootstrap";
283 reg = <0x0 0x40000>;
284 };
285
286 bootloader@40000 {
287 label = "bootloader";
288 reg = <0x40000 0x80000>;
289 };
290
291 bootloaderenv@c0000 {
292 label = "bootloader env";
293 reg = <0xc0000 0xc0000>;
294 };
295
296 dtb@180000 {
297 label = "device tree";
298 reg = <0x180000 0x80000>;
299 };
300
301 kernel@200000 {
302 label = "kernel";
303 reg = <0x200000 0x600000>;
304 };
305
306 rootfs@800000 {
307 label = "rootfs";
308 reg = <0x800000 0x0f800000>;
309 };
310 };
311 };
312 };
313 };
297 }; 314 };
298 315
299 vcc_mmc0_reg: fixedregulator_mmc0 { 316 vcc_mmc0_reg: fixedregulator_mmc0 {
diff --git a/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi b/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
index b5a5a91bc2ef..b813fdfa2842 100644
--- a/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
+++ b/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
@@ -75,7 +75,7 @@
75 reg = <0>; 75 reg = <0>;
76 clocks = <&clk20m>; 76 clocks = <&clk20m>;
77 interrupt-parent = <&pioE>; 77 interrupt-parent = <&pioE>;
78 interrupts = <6 GPIO_ACTIVE_LOW>; 78 interrupts = <6 IRQ_TYPE_EDGE_RISING>;
79 spi-max-frequency = <10000000>; 79 spi-max-frequency = <10000000>;
80 }; 80 };
81 81
@@ -84,7 +84,7 @@
84 reg = <1>; 84 reg = <1>;
85 clocks = <&clk20m>; 85 clocks = <&clk20m>;
86 interrupt-parent = <&pioE>; 86 interrupt-parent = <&pioE>;
87 interrupts = <7 GPIO_ACTIVE_LOW>; 87 interrupts = <7 IRQ_TYPE_EDGE_RISING>;
88 spi-max-frequency = <10000000>; 88 spi-max-frequency = <10000000>;
89 }; 89 };
90 }; 90 };
diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
index 5ab14cedb1db..cf712444b2c2 100644
--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -190,41 +190,60 @@
190 status = "okay"; 190 status = "okay";
191 }; 191 };
192 192
193 nand0: nand@80000000 { 193 ebi: ebi@10000000 {
194 nand-bus-width = <8>; 194 pinctrl-0 = <&pinctrl_ebi_cs3 &pinctrl_ebi_nrd_nandoe
195 nand-ecc-mode = "hw"; 195 &pinctrl_ebi_nwe_nandwe &pinctrl_ebi_nandrdy
196 nand-on-flash-bbt; 196 &pinctrl_ebi_data_0_7 &pinctrl_ebi_nand_addr>;
197 atmel,has-pmecc; 197 pinctrl-names = "default";
198 status = "okay"; 198 status = "okay";
199 199
200 at91bootstrap@0 { 200 nand_controller: nand-controller {
201 label = "at91bootstrap"; 201 status = "okay";
202 reg = <0x0 0x40000>;
203 };
204
205 bootloader@40000 {
206 label = "bootloader";
207 reg = <0x40000 0x80000>;
208 };
209
210 bootloaderenv@c0000 {
211 label = "bootloader env";
212 reg = <0xc0000 0xc0000>;
213 };
214
215 dtb@180000 {
216 label = "device tree";
217 reg = <0x180000 0x80000>;
218 };
219
220 kernel@200000 {
221 label = "kernel";
222 reg = <0x200000 0x600000>;
223 };
224 202
225 rootfs@800000 { 203 nand@3 {
226 label = "rootfs"; 204 reg = <0x3 0x0 0x2>;
227 reg = <0x800000 0x0f800000>; 205 atmel,rb = <0>;
206 nand-bus-width = <8>;
207 nand-ecc-mode = "hw";
208 nand-on-flash-bbt;
209 label = "atmel_nand";
210
211 partitions {
212 compatible = "fixed-partitions";
213 #address-cells = <1>;
214 #size-cells = <1>;
215
216 at91bootstrap@0 {
217 label = "at91bootstrap";
218 reg = <0x0 0x40000>;
219 };
220
221 bootloader@40000 {
222 label = "bootloader";
223 reg = <0x40000 0x80000>;
224 };
225
226 bootloaderenv@c0000 {
227 label = "bootloader env";
228 reg = <0xc0000 0xc0000>;
229 };
230
231 dtb@180000 {
232 label = "device tree";
233 reg = <0x180000 0x80000>;
234 };
235
236 kernel@200000 {
237 label = "kernel";
238 reg = <0x200000 0x600000>;
239 };
240
241 rootfs@800000 {
242 label = "rootfs";
243 reg = <0x800000 0x0f800000>;
244 };
245 };
246 };
228 }; 247 };
229 }; 248 };
230 }; 249 };
diff --git a/arch/arm/boot/dts/at91-sama5d4ek.dts b/arch/arm/boot/dts/at91-sama5d4ek.dts
index f8b96cef5e1a..bae5248f126e 100644
--- a/arch/arm/boot/dts/at91-sama5d4ek.dts
+++ b/arch/arm/boot/dts/at91-sama5d4ek.dts
@@ -236,41 +236,60 @@
236 status = "okay"; 236 status = "okay";
237 }; 237 };
238 238
239 nand0: nand@80000000 { 239 ebi: ebi@10000000 {
240 nand-bus-width = <8>; 240 pinctrl-0 = <&pinctrl_ebi_cs3 &pinctrl_ebi_nrd_nandoe
241 nand-ecc-mode = "hw"; 241 &pinctrl_ebi_nwe_nandwe &pinctrl_ebi_nandrdy
242 nand-on-flash-bbt; 242 &pinctrl_ebi_data_0_7 &pinctrl_ebi_nand_addr>;
243 atmel,has-pmecc; 243 pinctrl-names = "default";
244 status = "okay"; 244 status = "okay";
245 245
246 at91bootstrap@0 { 246 nand_controller: nand-controller {
247 label = "at91bootstrap"; 247 status = "okay";
248 reg = <0x0 0x40000>;
249 };
250
251 bootloader@40000 {
252 label = "bootloader";
253 reg = <0x40000 0x80000>;
254 };
255
256 bootloaderenv@c0000 {
257 label = "bootloader env";
258 reg = <0xc0000 0xc0000>;
259 };
260
261 dtb@180000 {
262 label = "device tree";
263 reg = <0x180000 0x80000>;
264 };
265
266 kernel@200000 {
267 label = "kernel";
268 reg = <0x200000 0x600000>;
269 };
270 248
271 rootfs@800000 { 249 nand@3 {
272 label = "rootfs"; 250 reg = <0x3 0x0 0x2>;
273 reg = <0x800000 0x0f800000>; 251 atmel,rb = <0>;
252 nand-bus-width = <8>;
253 nand-ecc-mode = "hw";
254 nand-on-flash-bbt;
255 label = "atmel_nand";
256
257 partitions {
258 compatible = "fixed-partitions";
259 #address-cells = <1>;
260 #size-cells = <1>;
261
262 at91bootstrap@0 {
263 label = "at91bootstrap";
264 reg = <0x0 0x40000>;
265 };
266
267 bootloader@40000 {
268 label = "bootloader";
269 reg = <0x40000 0x80000>;
270 };
271
272 bootloaderenv@c0000 {
273 label = "bootloader env";
274 reg = <0xc0000 0xc0000>;
275 };
276
277 dtb@180000 {
278 label = "device tree";
279 reg = <0x180000 0x80000>;
280 };
281
282 kernel@200000 {
283 label = "kernel";
284 reg = <0x200000 0x600000>;
285 };
286
287 rootfs@800000 {
288 label = "rootfs";
289 reg = <0x800000 0x0f800000>;
290 };
291 };
292 };
274 }; 293 };
275 }; 294 };
276 }; 295 };
diff --git a/arch/arm/boot/dts/at91-tse850-3.dts b/arch/arm/boot/dts/at91-tse850-3.dts
index 498fba3e52b5..5f29010cdbd8 100644
--- a/arch/arm/boot/dts/at91-tse850-3.dts
+++ b/arch/arm/boot/dts/at91-tse850-3.dts
@@ -161,45 +161,51 @@
161 }; 161 };
162}; 162};
163 163
164&nand0 { 164&nand {
165 at91bootstrap@0 { 165 partitions {
166 label = "at91bootstrap"; 166 compatible = "fixed-partitions";
167 reg = <0x0 0x40000>; 167 #address-cells = <1>;
168 }; 168 #size-cells = <1>;
169
170 at91bootstrap@0 {
171 label = "at91bootstrap";
172 reg = <0x0 0x40000>;
173 };
169 174
170 barebox@40000 { 175 barebox@40000 {
171 label = "bootloader"; 176 label = "bootloader";
172 reg = <0x40000 0x60000>; 177 reg = <0x40000 0x60000>;
173 }; 178 };
174 179
175 bareboxenv@c0000 { 180 bareboxenv@c0000 {
176 label = "bareboxenv"; 181 label = "bareboxenv";
177 reg = <0xc0000 0x40000>; 182 reg = <0xc0000 0x40000>;
178 }; 183 };
179 184
180 bareboxenv2@100000 { 185 bareboxenv2@100000 {
181 label = "bareboxenv2"; 186 label = "bareboxenv2";
182 reg = <0x100000 0x40000>; 187 reg = <0x100000 0x40000>;
183 }; 188 };
184 189
185 oftree@180000 { 190 oftree@180000 {
186 label = "oftree"; 191 label = "oftree";
187 reg = <0x180000 0x20000>; 192 reg = <0x180000 0x20000>;
188 }; 193 };
189 194
190 kernel@200000 { 195 kernel@200000 {
191 label = "kernel"; 196 label = "kernel";
192 reg = <0x200000 0x500000>; 197 reg = <0x200000 0x500000>;
193 }; 198 };
194 199
195 rootfs@800000 { 200 rootfs@800000 {
196 label = "rootfs"; 201 label = "rootfs";
197 reg = <0x800000 0x0f800000>; 202 reg = <0x800000 0x0f800000>;
198 }; 203 };
199 204
200 ovlfs@10000000 { 205 ovlfs@10000000 {
201 label = "ovlfs"; 206 label = "ovlfs";
202 reg = <0x10000000 0x10000000>; 207 reg = <0x10000000 0x10000000>;
208 };
203 }; 209 };
204}; 210};
205 211
@@ -239,7 +245,7 @@
239 }; 245 };
240 246
241 eeprom@50 { 247 eeprom@50 {
242 compatible = "nxp,24c02"; 248 compatible = "nxp,24c02", "atmel,24c02";
243 reg = <0x50>; 249 reg = <0x50>;
244 pagesize = <16>; 250 pagesize = <16>;
245 }; 251 };
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi
index 9e035b21e1b6..6582f3cca929 100644
--- a/arch/arm/boot/dts/at91sam9260.dtsi
+++ b/arch/arm/boot/dts/at91sam9260.dtsi
@@ -99,6 +99,16 @@
99 reg = <0xffffea00 0x200>; 99 reg = <0xffffea00 0x200>;
100 }; 100 };
101 101
102 smc: smc@ffffec00 {
103 compatible = "atmel,at91sam9260-smc", "syscon";
104 reg = <0xffffec00 0x200>;
105 };
106
107 matrix: matrix@ffffee00 {
108 compatible = "atmel,at91sam9260-matrix", "syscon";
109 reg = <0xffffee00 0x200>;
110 };
111
102 pmc: pmc@fffffc00 { 112 pmc: pmc@fffffc00 {
103 compatible = "atmel,at91sam9260-pmc", "syscon"; 113 compatible = "atmel,at91sam9260-pmc", "syscon";
104 reg = <0xfffffc00 0x100>; 114 reg = <0xfffffc00 0x100>;
@@ -522,10 +532,14 @@
522 }; 532 };
523 533
524 nand { 534 nand {
525 pinctrl_nand: nand-0 { 535 pinctrl_nand_rb: nand-rb-0 {
536 atmel,pins =
537 <AT91_PIOC 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
538 };
539
540 pinctrl_nand_cs: nand-cs-0 {
526 atmel,pins = 541 atmel,pins =
527 <AT91_PIOC 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PC13 gpio RDY pin pull_up */ 542 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
528 AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PC14 gpio enable pin pull_up */
529 }; 543 };
530 }; 544 };
531 545
@@ -985,24 +999,6 @@
985 }; 999 };
986 }; 1000 };
987 1001
988 nand0: nand@40000000 {
989 compatible = "atmel,at91rm9200-nand";
990 #address-cells = <1>;
991 #size-cells = <1>;
992 reg = <0x40000000 0x10000000
993 0xffffe800 0x200
994 >;
995 atmel,nand-addr-offset = <21>;
996 atmel,nand-cmd-offset = <22>;
997 pinctrl-names = "default";
998 pinctrl-0 = <&pinctrl_nand>;
999 gpios = <&pioC 13 GPIO_ACTIVE_HIGH
1000 &pioC 14 GPIO_ACTIVE_HIGH
1001 0
1002 >;
1003 status = "disabled";
1004 };
1005
1006 usb0: ohci@500000 { 1002 usb0: ohci@500000 {
1007 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1003 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1008 reg = <0x00500000 0x100000>; 1004 reg = <0x00500000 0x100000>;
@@ -1011,6 +1007,33 @@
1011 clock-names = "ohci_clk", "hclk", "uhpck"; 1007 clock-names = "ohci_clk", "hclk", "uhpck";
1012 status = "disabled"; 1008 status = "disabled";
1013 }; 1009 };
1010
1011 ebi: ebi@10000000 {
1012 compatible = "atmel,at91sam9260-ebi";
1013 #address-cells = <2>;
1014 #size-cells = <1>;
1015 atmel,smc = <&smc>;
1016 atmel,matrix = <&matrix>;
1017 reg = <0x10000000 0x80000000>;
1018 ranges = <0x0 0x0 0x10000000 0x10000000
1019 0x1 0x0 0x20000000 0x10000000
1020 0x2 0x0 0x30000000 0x10000000
1021 0x3 0x0 0x40000000 0x10000000
1022 0x4 0x0 0x50000000 0x10000000
1023 0x5 0x0 0x60000000 0x10000000
1024 0x6 0x0 0x70000000 0x10000000
1025 0x7 0x0 0x80000000 0x10000000>;
1026 clocks = <&mck>;
1027 status = "disabled";
1028
1029 nand_controller: nand-controller {
1030 compatible = "atmel,at91sam9260-nand-controller";
1031 #address-cells = <2>;
1032 #size-cells = <1>;
1033 ranges;
1034 status = "disabled";
1035 };
1036 };
1014 }; 1037 };
1015 1038
1016 i2c-gpio-0 { 1039 i2c-gpio-0 {
diff --git a/arch/arm/boot/dts/at91sam9261.dtsi b/arch/arm/boot/dts/at91sam9261.dtsi
index 7e80acda8f69..a05353f96151 100644
--- a/arch/arm/boot/dts/at91sam9261.dtsi
+++ b/arch/arm/boot/dts/at91sam9261.dtsi
@@ -91,20 +91,31 @@
91 status = "disabled"; 91 status = "disabled";
92 }; 92 };
93 93
94 nand0: nand@40000000 { 94 ebi: ebi@10000000 {
95 compatible = "atmel,at91rm9200-nand"; 95 compatible = "atmel,at91sam9261-ebi";
96 #address-cells = <1>; 96 #address-cells = <2>;
97 #size-cells = <1>; 97 #size-cells = <1>;
98 reg = <0x40000000 0x10000000>; 98 atmel,smc = <&smc>;
99 atmel,nand-addr-offset = <22>; 99 atmel,matrix = <&matrix>;
100 atmel,nand-cmd-offset = <21>; 100 reg = <0x10000000 0x80000000>;
101 pinctrl-names = "default"; 101 ranges = <0x0 0x0 0x10000000 0x10000000
102 pinctrl-0 = <&pinctrl_nand>; 102 0x1 0x0 0x20000000 0x10000000
103 103 0x2 0x0 0x30000000 0x10000000
104 gpios = <&pioC 15 GPIO_ACTIVE_HIGH>, 104 0x3 0x0 0x40000000 0x10000000
105 <&pioC 14 GPIO_ACTIVE_HIGH>, 105 0x4 0x0 0x50000000 0x10000000
106 <0>; 106 0x5 0x0 0x60000000 0x10000000
107 0x6 0x0 0x70000000 0x10000000
108 0x7 0x0 0x80000000 0x10000000>;
109 clocks = <&mck>;
107 status = "disabled"; 110 status = "disabled";
111
112 nand_controller: nand-controller {
113 compatible = "atmel,at91sam9261-nand-controller";
114 #address-cells = <2>;
115 #size-cells = <1>;
116 ranges;
117 status = "disabled";
118 };
108 }; 119 };
109 120
110 apb { 121 apb {
@@ -262,6 +273,11 @@
262 reg = <0xffffea00 0x200>; 273 reg = <0xffffea00 0x200>;
263 }; 274 };
264 275
276 smc: smc@ffffec00 {
277 compatible = "atmel,at91sam9260-smc", "syscon";
278 reg = <0xffffec00 0x200>;
279 };
280
265 matrix: matrix@ffffee00 { 281 matrix: matrix@ffffee00 {
266 compatible = "atmel,at91sam9261-matrix", "syscon"; 282 compatible = "atmel,at91sam9261-matrix", "syscon";
267 reg = <0xffffee00 0x200>; 283 reg = <0xffffee00 0x200>;
@@ -362,9 +378,13 @@
362 }; 378 };
363 379
364 nand { 380 nand {
365 pinctrl_nand: nand-0 { 381 pinctrl_nand_rb: nand-rb-0 {
382 atmel,pins =
383 <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
384 };
385
386 pinctrl_nand_cs: nand-cs-0 {
366 atmel,pins = 387 atmel,pins =
367 <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>,
368 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; 388 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
369 }; 389 };
370 }; 390 };
diff --git a/arch/arm/boot/dts/at91sam9261ek.dts b/arch/arm/boot/dts/at91sam9261ek.dts
index 55bd51f07fa6..157e1493e6eb 100644
--- a/arch/arm/boot/dts/at91sam9261ek.dts
+++ b/arch/arm/boot/dts/at91sam9261ek.dts
@@ -68,40 +68,59 @@
68 }; 68 };
69 }; 69 };
70 70
71 nand0: nand@40000000 { 71 ebi: ebi@10000000 {
72 nand-bus-width = <8>;
73 nand-ecc-mode = "soft";
74 nand-on-flash-bbt;
75 status = "okay"; 72 status = "okay";
76 73
77 at91bootstrap@0 { 74 nand_controller: nand-controller {
78 label = "at91bootstrap"; 75 status = "okay";
79 reg = <0x0 0x40000>; 76 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
80 }; 77 pinctrl-names = "default";
81 78
82 bootloader@40000 { 79 nand@3 {
83 label = "bootloader"; 80 reg = <0x3 0x0 0x800000>;
84 reg = <0x40000 0x80000>; 81 rb-gpios = <&pioC 15 GPIO_ACTIVE_HIGH>;
85 }; 82 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
86 83 nand-bus-width = <8>;
87 bootloaderenv@c0000 { 84 nand-ecc-mode = "soft";
88 label = "bootloader env"; 85 nand-on-flash-bbt;
89 reg = <0xc0000 0xc0000>; 86 label = "atmel_nand";
90 }; 87
91 88 partitions {
92 dtb@180000 { 89 compatible = "fixed-partitions";
93 label = "device tree"; 90 #address-cells = <1>;
94 reg = <0x180000 0x80000>; 91 #size-cells = <1>;
95 }; 92
96 93 at91bootstrap@0 {
97 kernel@200000 { 94 label = "at91bootstrap";
98 label = "kernel"; 95 reg = <0x0 0x40000>;
99 reg = <0x200000 0x600000>; 96 };
100 }; 97
101 98 bootloader@40000 {
102 rootfs@800000 { 99 label = "bootloader";
103 label = "rootfs"; 100 reg = <0x40000 0x80000>;
104 reg = <0x800000 0x0f800000>; 101 };
102
103 bootloaderenv@c0000 {
104 label = "bootloader env";
105 reg = <0xc0000 0xc0000>;
106 };
107
108 dtb@180000 {
109 label = "device tree";
110 reg = <0x180000 0x80000>;
111 };
112
113 kernel@200000 {
114 label = "kernel";
115 reg = <0x200000 0x600000>;
116 };
117
118 rootfs@800000 {
119 label = "rootfs";
120 reg = <0x800000 0x0f800000>;
121 };
122 };
123 };
105 }; 124 };
106 }; 125 };
107 126
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
index a1888f6d892b..ed4b564f8de5 100644
--- a/arch/arm/boot/dts/at91sam9263.dtsi
+++ b/arch/arm/boot/dts/at91sam9263.dtsi
@@ -361,11 +361,26 @@
361 reg = <0xffffe200 0x200>; 361 reg = <0xffffe200 0x200>;
362 }; 362 };
363 363
364 smc0: smc@ffffe400 {
365 compatible = "atmel,at91sam9260-smc", "syscon";
366 reg = <0xffffe400 0x200>;
367 };
368
364 ramc1: ramc@ffffe800 { 369 ramc1: ramc@ffffe800 {
365 compatible = "atmel,at91sam9260-sdramc"; 370 compatible = "atmel,at91sam9260-sdramc";
366 reg = <0xffffe800 0x200>; 371 reg = <0xffffe800 0x200>;
367 }; 372 };
368 373
374 smc1: smc@ffffea00 {
375 compatible = "atmel,at91sam9260-smc", "syscon";
376 reg = <0xffffea00 0x200>;
377 };
378
379 matrix: matrix@ffffec00 {
380 compatible = "atmel,at91sam9263-matrix", "syscon";
381 reg = <0xffffec00 0x200>;
382 };
383
369 pit: timer@fffffd30 { 384 pit: timer@fffffd30 {
370 compatible = "atmel,at91sam9260-pit"; 385 compatible = "atmel,at91sam9260-pit";
371 reg = <0xfffffd30 0xf>; 386 reg = <0xfffffd30 0xf>;
@@ -472,10 +487,14 @@
472 }; 487 };
473 488
474 nand { 489 nand {
475 pinctrl_nand: nand-0 { 490 pinctrl_nand_rb: nand-rb-0 {
491 atmel,pins =
492 <AT91_PIOA 22 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
493 };
494
495 pinctrl_nand_cs: nand-cs-0 {
476 atmel,pins = 496 atmel,pins =
477 <AT91_PIOA 22 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PA22 gpio RDY pin pull_up*/ 497 <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
478 AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PD15 gpio enable pin pull_up */
479 }; 498 };
480 }; 499 };
481 500
@@ -991,24 +1010,6 @@
991 status = "disabled"; 1010 status = "disabled";
992 }; 1011 };
993 1012
994 nand0: nand@40000000 {
995 compatible = "atmel,at91rm9200-nand";
996 #address-cells = <1>;
997 #size-cells = <1>;
998 reg = <0x40000000 0x10000000
999 0xffffe000 0x200
1000 >;
1001 atmel,nand-addr-offset = <21>;
1002 atmel,nand-cmd-offset = <22>;
1003 pinctrl-names = "default";
1004 pinctrl-0 = <&pinctrl_nand>;
1005 gpios = <&pioA 22 GPIO_ACTIVE_HIGH
1006 &pioD 15 GPIO_ACTIVE_HIGH
1007 0
1008 >;
1009 status = "disabled";
1010 };
1011
1012 usb0: ohci@00a00000 { 1013 usb0: ohci@00a00000 {
1013 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1014 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1014 reg = <0x00a00000 0x100000>; 1015 reg = <0x00a00000 0x100000>;
@@ -1017,6 +1018,52 @@
1017 clock-names = "ohci_clk", "hclk", "uhpck"; 1018 clock-names = "ohci_clk", "hclk", "uhpck";
1018 status = "disabled"; 1019 status = "disabled";
1019 }; 1020 };
1021
1022 ebi0: ebi@10000000 {
1023 compatible = "atmel,at91sam9263-ebi0";
1024 #address-cells = <2>;
1025 #size-cells = <1>;
1026 atmel,smc = <&smc0>;
1027 atmel,matrix = <&matrix>;
1028 reg = <0x10000000 0x80000000>;
1029 ranges = <0x0 0x0 0x10000000 0x10000000
1030 0x1 0x0 0x20000000 0x10000000
1031 0x2 0x0 0x30000000 0x10000000
1032 0x3 0x0 0x40000000 0x10000000
1033 0x4 0x0 0x50000000 0x10000000
1034 0x5 0x0 0x60000000 0x10000000>;
1035 clocks = <&mck>;
1036 status = "disabled";
1037
1038 nand_controller0: nand-controller {
1039 compatible = "atmel,at91sam9260-nand-controller";
1040 #address-cells = <2>;
1041 #size-cells = <1>;
1042 ranges;
1043 status = "disabled";
1044 };
1045 };
1046
1047 ebi1: ebi@70000000 {
1048 compatible = "atmel,at91sam9263-ebi1";
1049 #address-cells = <2>;
1050 #size-cells = <1>;
1051 atmel,smc = <&smc1>;
1052 atmel,matrix = <&matrix>;
1053 reg = <0x80000000 0x20000000>;
1054 ranges = <0x0 0x0 0x80000000 0x10000000
1055 0x1 0x0 0x90000000 0x10000000>;
1056 clocks = <&mck>;
1057 status = "disabled";
1058
1059 nand_controller1: nand-controller {
1060 compatible = "atmel,at91sam9260-nand-controller";
1061 #address-cells = <2>;
1062 #size-cells = <1>;
1063 ranges;
1064 status = "disabled";
1065 };
1066 };
1020 }; 1067 };
1021 1068
1022 i2c-gpio-0 { 1069 i2c-gpio-0 {
diff --git a/arch/arm/boot/dts/at91sam9263ek.dts b/arch/arm/boot/dts/at91sam9263ek.dts
index 127cc42e9e29..10a0925da10e 100644
--- a/arch/arm/boot/dts/at91sam9263ek.dts
+++ b/arch/arm/boot/dts/at91sam9263ek.dts
@@ -125,50 +125,69 @@
125 }; 125 };
126 }; 126 };
127 127
128 nand0: nand@40000000 { 128 ebi0: ebi@10000000 {
129 nand-bus-width = <8>;
130 nand-ecc-mode = "soft";
131 nand-on-flash-bbt = <1>;
132 status = "okay"; 129 status = "okay";
133 130
134 at91bootstrap@0 { 131 nand_controller: nand-controller {
135 label = "at91bootstrap"; 132 status = "okay";
136 reg = <0x0 0x20000>; 133 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
137 }; 134 pinctrl-names = "default";
138 135
139 barebox@20000 { 136 nand@3 {
140 label = "barebox"; 137 reg = <0x3 0x0 0x800000>;
141 reg = <0x20000 0x40000>; 138 rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>;
142 }; 139 cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
143 140 nand-bus-width = <8>;
144 bareboxenv@60000 { 141 nand-ecc-mode = "soft";
145 label = "bareboxenv"; 142 nand-on-flash-bbt;
146 reg = <0x60000 0x20000>; 143 label = "atmel_nand";
147 }; 144
148 145 partitions {
149 bareboxenv2@80000 { 146 compatible = "fixed-partitions";
150 label = "bareboxenv2"; 147 #address-cells = <1>;
151 reg = <0x80000 0x20000>; 148 #size-cells = <1>;
152 }; 149
153 150 at91bootstrap@0 {
154 oftree@80000 { 151 label = "at91bootstrap";
155 label = "oftree"; 152 reg = <0x0 0x20000>;
156 reg = <0xa0000 0x20000>; 153 };
157 }; 154
158 155 barebox@20000 {
159 kernel@a0000 { 156 label = "barebox";
160 label = "kernel"; 157 reg = <0x20000 0x40000>;
161 reg = <0xc0000 0x400000>; 158 };
162 }; 159
163 160 bareboxenv@60000 {
164 rootfs@4a0000 { 161 label = "bareboxenv";
165 label = "rootfs"; 162 reg = <0x60000 0x20000>;
166 reg = <0x4c0000 0x7800000>; 163 };
167 }; 164
168 165 bareboxenv2@80000 {
169 data@7ca0000 { 166 label = "bareboxenv2";
170 label = "data"; 167 reg = <0x80000 0x20000>;
171 reg = <0x7cc0000 0x8340000>; 168 };
169
170 oftree@80000 {
171 label = "oftree";
172 reg = <0xa0000 0x20000>;
173 };
174
175 kernel@a0000 {
176 label = "kernel";
177 reg = <0xc0000 0x400000>;
178 };
179
180 rootfs@4a0000 {
181 label = "rootfs";
182 reg = <0x4c0000 0x7800000>;
183 };
184
185 data@7ca0000 {
186 label = "data";
187 reg = <0x7cc0000 0x8340000>;
188 };
189 };
190 };
172 }; 191 };
173 }; 192 };
174 193
diff --git a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
index 27847a47c108..ac9a1511e239 100644
--- a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
+++ b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
@@ -123,50 +123,69 @@
123 }; 123 };
124 }; 124 };
125 125
126 nand0: nand@40000000 { 126 ebi: ebi@10000000 {
127 nand-bus-width = <8>;
128 nand-ecc-mode = "soft";
129 nand-on-flash-bbt;
130 status = "okay"; 127 status = "okay";
131 128
132 at91bootstrap@0 { 129 nand_controller: nand-controller {
133 label = "at91bootstrap"; 130 status = "okay";
134 reg = <0x0 0x20000>; 131 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
135 }; 132 pinctrl-names = "default";
136 133
137 barebox@20000 { 134 nand@3 {
138 label = "barebox"; 135 reg = <0x3 0x0 0x800000>;
139 reg = <0x20000 0x40000>; 136 rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
140 }; 137 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
141 138 nand-bus-width = <8>;
142 bareboxenv@60000 { 139 nand-ecc-mode = "soft";
143 label = "bareboxenv"; 140 nand-on-flash-bbt;
144 reg = <0x60000 0x20000>; 141 label = "atmel_nand";
145 }; 142
146 143 partitions {
147 bareboxenv2@80000 { 144 compatible = "fixed-partitions";
148 label = "bareboxenv2"; 145 #address-cells = <1>;
149 reg = <0x80000 0x20000>; 146 #size-cells = <1>;
150 }; 147
151 148 at91bootstrap@0 {
152 oftree@80000 { 149 label = "at91bootstrap";
153 label = "oftree"; 150 reg = <0x0 0x20000>;
154 reg = <0xa0000 0x20000>; 151 };
155 }; 152
156 153 barebox@20000 {
157 kernel@a0000 { 154 label = "barebox";
158 label = "kernel"; 155 reg = <0x20000 0x40000>;
159 reg = <0xc0000 0x400000>; 156 };
160 }; 157
161 158 bareboxenv@60000 {
162 rootfs@4a0000 { 159 label = "bareboxenv";
163 label = "rootfs"; 160 reg = <0x60000 0x20000>;
164 reg = <0x4c0000 0x7800000>; 161 };
165 }; 162
166 163 bareboxenv2@80000 {
167 data@7ca0000 { 164 label = "bareboxenv2";
168 label = "data"; 165 reg = <0x80000 0x20000>;
169 reg = <0x7cc0000 0x8340000>; 166 };
167
168 oftree@80000 {
169 label = "oftree";
170 reg = <0xa0000 0x20000>;
171 };
172
173 kernel@a0000 {
174 label = "kernel";
175 reg = <0xc0000 0x400000>;
176 };
177
178 rootfs@4a0000 {
179 label = "rootfs";
180 reg = <0x4c0000 0x7800000>;
181 };
182
183 data@7ca0000 {
184 label = "data";
185 reg = <0x7cc0000 0x8340000>;
186 };
187 };
188 };
170 }; 189 };
171 }; 190 };
172 191
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
index e567d5fd3f9d..a4808c4fbc05 100644
--- a/arch/arm/boot/dts/at91sam9g45.dtsi
+++ b/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -113,6 +113,16 @@
113 clock-names = "ddrck"; 113 clock-names = "ddrck";
114 }; 114 };
115 115
116 smc: smc@ffffe800 {
117 compatible = "atmel,at91sam9260-smc", "syscon";
118 reg = <0xffffe800 0x200>;
119 };
120
121 matrix: matrix@ffffea00 {
122 compatible = "atmel,at91sam9g45-matrix", "syscon";
123 reg = <0xffffea00 0x200>;
124 };
125
116 pmc: pmc@fffffc00 { 126 pmc: pmc@fffffc00 {
117 compatible = "atmel,at91sam9g45-pmc", "syscon"; 127 compatible = "atmel,at91sam9g45-pmc", "syscon";
118 reg = <0xfffffc00 0x100>; 128 reg = <0xfffffc00 0x100>;
@@ -601,10 +611,14 @@
601 }; 611 };
602 612
603 nand { 613 nand {
604 pinctrl_nand: nand-0 { 614 pinctrl_nand_rb: nand-rb-0 {
605 atmel,pins = 615 atmel,pins =
606 <AT91_PIOC 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PC8 gpio RDY pin pull_up*/ 616 <AT91_PIOC 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
607 AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PC14 gpio enable pin pull_up */ 617 };
618
619 pinctrl_nand_cs: nand-cs-0 {
620 atmel,pins =
621 <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
608 }; 622 };
609 }; 623 };
610 624
@@ -1278,25 +1292,6 @@
1278 status = "disabled"; 1292 status = "disabled";
1279 }; 1293 };
1280 1294
1281 nand0: nand@40000000 {
1282 compatible = "atmel,at91rm9200-nand";
1283 #address-cells = <1>;
1284 #size-cells = <1>;
1285 reg = <0x40000000 0x10000000
1286 0xffffe200 0x200
1287 >;
1288 atmel,nand-addr-offset = <21>;
1289 atmel,nand-cmd-offset = <22>;
1290 atmel,nand-has-dma;
1291 pinctrl-names = "default";
1292 pinctrl-0 = <&pinctrl_nand>;
1293 gpios = <&pioC 8 GPIO_ACTIVE_HIGH
1294 &pioC 14 GPIO_ACTIVE_HIGH
1295 0
1296 >;
1297 status = "disabled";
1298 };
1299
1300 usb0: ohci@00700000 { 1295 usb0: ohci@00700000 {
1301 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1296 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1302 reg = <0x00700000 0x100000>; 1297 reg = <0x00700000 0x100000>;
@@ -1314,6 +1309,31 @@
1314 clock-names = "usb_clk", "ehci_clk"; 1309 clock-names = "usb_clk", "ehci_clk";
1315 status = "disabled"; 1310 status = "disabled";
1316 }; 1311 };
1312
1313 ebi: ebi@10000000 {
1314 compatible = "atmel,at91sam9g45-ebi";
1315 #address-cells = <2>;
1316 #size-cells = <1>;
1317 atmel,smc = <&smc>;
1318 atmel,matrix = <&matrix>;
1319 reg = <0x10000000 0x80000000>;
1320 ranges = <0x0 0x0 0x10000000 0x10000000
1321 0x1 0x0 0x20000000 0x10000000
1322 0x2 0x0 0x30000000 0x10000000
1323 0x3 0x0 0x40000000 0x10000000
1324 0x4 0x0 0x50000000 0x10000000
1325 0x5 0x0 0x60000000 0x10000000>;
1326 clocks = <&mck>;
1327 status = "disabled";
1328
1329 nand_controller: nand-controller {
1330 compatible = "atmel,at91sam9g45-nand-controller";
1331 #address-cells = <2>;
1332 #size-cells = <1>;
1333 ranges;
1334 status = "disabled";
1335 };
1336 };
1317 }; 1337 };
1318 1338
1319 i2c-gpio-0 { 1339 i2c-gpio-0 {
diff --git a/arch/arm/boot/dts/at91sam9m10g45ek.dts b/arch/arm/boot/dts/at91sam9m10g45ek.dts
index 2400c99134f7..2522c3308305 100644
--- a/arch/arm/boot/dts/at91sam9m10g45ek.dts
+++ b/arch/arm/boot/dts/at91sam9m10g45ek.dts
@@ -245,25 +245,44 @@
245 }; 245 };
246 }; 246 };
247 247
248 nand0: nand@40000000 { 248 ebi: ebi@10000000 {
249 nand-bus-width = <8>;
250 nand-ecc-mode = "soft";
251 nand-on-flash-bbt;
252 status = "okay"; 249 status = "okay";
253 250
254 boot@0 { 251 nand_controller: nand-controller {
255 label = "bootstrap/uboot/kernel"; 252 status = "okay";
256 reg = <0x0 0x400000>; 253 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
257 }; 254 pinctrl-names = "default";
258 255
259 rootfs@400000 { 256 nand@3 {
260 label = "rootfs"; 257 reg = <0x3 0x0 0x800000>;
261 reg = <0x400000 0x3C00000>; 258 rb-gpios = <&pioC 8 GPIO_ACTIVE_HIGH>;
262 }; 259 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
260 nand-bus-width = <8>;
261 nand-ecc-mode = "soft";
262 nand-on-flash-bbt;
263 label = "atmel_nand";
264
265 partitions {
266 compatible = "fixed-partitions";
267 #address-cells = <1>;
268 #size-cells = <1>;
269
270 boot@0 {
271 label = "bootstrap/uboot/kernel";
272 reg = <0x0 0x400000>;
273 };
263 274
264 data@4000000 { 275 rootfs@400000 {
265 label = "data"; 276 label = "rootfs";
266 reg = <0x4000000 0xC000000>; 277 reg = <0x400000 0x3C00000>;
278 };
279
280 data@4000000 {
281 label = "data";
282 reg = <0x4000000 0xC000000>;
283 };
284 };
285 };
267 }; 286 };
268 }; 287 };
269 288
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
index f43d7695352d..06516d02d351 100644
--- a/arch/arm/boot/dts/at91sam9n12.dtsi
+++ b/arch/arm/boot/dts/at91sam9n12.dtsi
@@ -89,6 +89,17 @@
89 atmel,external-irqs = <31>; 89 atmel,external-irqs = <31>;
90 }; 90 };
91 91
92 matrix: matrix@ffffde00 {
93 compatible = "atmel,at91sam9n12-matrix", "syscon";
94 reg = <0xffffde00 0x100>;
95 };
96
97 pmecc: ecc-engine@ffffe000 {
98 compatible = "atmel,at91sam9g45-pmecc";
99 reg = <0xffffe000 0x600>,
100 <0xffffe600 0x200>;
101 };
102
92 ramc0: ramc@ffffe800 { 103 ramc0: ramc@ffffe800 {
93 compatible = "atmel,at91sam9g45-ddramc"; 104 compatible = "atmel,at91sam9g45-ddramc";
94 reg = <0xffffe800 0x200>; 105 reg = <0xffffe800 0x200>;
@@ -96,6 +107,11 @@
96 clock-names = "ddrck"; 107 clock-names = "ddrck";
97 }; 108 };
98 109
110 smc: smc@ffffea00 {
111 compatible = "atmel,at91sam9260-smc", "syscon";
112 reg = <0xffffea00 0x200>;
113 };
114
99 pmc: pmc@fffffc00 { 115 pmc: pmc@fffffc00 {
100 compatible = "atmel,at91sam9n12-pmc", "syscon"; 116 compatible = "atmel,at91sam9n12-pmc", "syscon";
101 reg = <0xfffffc00 0x200>; 117 reg = <0xfffffc00 0x200>;
@@ -627,10 +643,14 @@
627 }; 643 };
628 644
629 nand { 645 nand {
630 pinctrl_nand: nand-0 { 646 pinctrl_nand_rb: nand-rb-0 {
631 atmel,pins = 647 atmel,pins =
632 <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PD5 gpio RDY pin pull_up*/ 648 <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
633 AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PD4 gpio enable pin pull_up */ 649 };
650
651 pinctrl_nand_cs: nand-cs-0 {
652 atmel,pins =
653 <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
634 }; 654 };
635 }; 655 };
636 656
@@ -998,28 +1018,6 @@
998 }; 1018 };
999 }; 1019 };
1000 1020
1001 nand0: nand@40000000 {
1002 compatible = "atmel,at91rm9200-nand";
1003 #address-cells = <1>;
1004 #size-cells = <1>;
1005 reg = < 0x40000000 0x10000000
1006 0xffffe000 0x00000600
1007 0xffffe600 0x00000200
1008 0x00108000 0x00018000
1009 >;
1010 atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
1011 atmel,nand-addr-offset = <21>;
1012 atmel,nand-cmd-offset = <22>;
1013 atmel,nand-has-dma;
1014 pinctrl-names = "default";
1015 pinctrl-0 = <&pinctrl_nand>;
1016 gpios = <&pioD 5 GPIO_ACTIVE_HIGH
1017 &pioD 4 GPIO_ACTIVE_HIGH
1018 0
1019 >;
1020 status = "disabled";
1021 };
1022
1023 usb0: ohci@00500000 { 1021 usb0: ohci@00500000 {
1024 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1022 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1025 reg = <0x00500000 0x00100000>; 1023 reg = <0x00500000 0x00100000>;
@@ -1028,6 +1026,32 @@
1028 clock-names = "ohci_clk", "hclk", "uhpck"; 1026 clock-names = "ohci_clk", "hclk", "uhpck";
1029 status = "disabled"; 1027 status = "disabled";
1030 }; 1028 };
1029
1030 ebi: ebi@10000000 {
1031 compatible = "atmel,at91sam9x5-ebi";
1032 #address-cells = <2>;
1033 #size-cells = <1>;
1034 atmel,smc = <&smc>;
1035 atmel,matrix = <&matrix>;
1036 reg = <0x10000000 0x60000000>;
1037 ranges = <0x0 0x0 0x10000000 0x10000000
1038 0x1 0x0 0x20000000 0x10000000
1039 0x2 0x0 0x30000000 0x10000000
1040 0x3 0x0 0x40000000 0x10000000
1041 0x4 0x0 0x50000000 0x10000000
1042 0x5 0x0 0x60000000 0x10000000>;
1043 clocks = <&mck>;
1044 status = "disabled";
1045
1046 nand_controller: nand-controller {
1047 compatible = "atmel,at91sam9g45-nand-controller";
1048 ecc-engine = <&pmecc>;
1049 #address-cells = <2>;
1050 #size-cells = <1>;
1051 ranges;
1052 status = "disabled";
1053 };
1054 };
1031 }; 1055 };
1032 1056
1033 i2c-gpio-0 { 1057 i2c-gpio-0 {
diff --git a/arch/arm/boot/dts/at91sam9n12ek.dts b/arch/arm/boot/dts/at91sam9n12ek.dts
index 626c67d66626..5bea8c59b115 100644
--- a/arch/arm/boot/dts/at91sam9n12ek.dts
+++ b/arch/arm/boot/dts/at91sam9n12ek.dts
@@ -147,14 +147,26 @@
147 }; 147 };
148 }; 148 };
149 149
150 nand0: nand@40000000 { 150 ebi: ebi@10000000 {
151 nand-bus-width = <8>;
152 nand-ecc-mode = "hw";
153 atmel,has-pmecc;
154 atmel,pmecc-cap = <2>;
155 atmel,pmecc-sector-size = <512>;
156 nand-on-flash-bbt;
157 status = "okay"; 151 status = "okay";
152
153 nand_controller: nand-controller {
154 status = "okay";
155 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
156 pinctrl-names = "default";
157
158 nand@3 {
159 reg = <0x3 0x0 0x800000>;
160 rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
161 cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
162 nand-bus-width = <8>;
163 nand-ecc-mode = "soft";
164 nand-ecc-strength = <2>;
165 nand-ecc-step-size = <512>;
166 nand-on-flash-bbt;
167 label = "atmel_nand";
168 };
169 };
158 }; 170 };
159 171
160 usb0: ohci@00500000 { 172 usb0: ohci@00500000 {
diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi
index f4c129a98f17..7768342a6638 100644
--- a/arch/arm/boot/dts/at91sam9rl.dtsi
+++ b/arch/arm/boot/dts/at91sam9rl.dtsi
@@ -92,21 +92,29 @@
92 status = "disabled"; 92 status = "disabled";
93 }; 93 };
94 94
95 nand0: nand@40000000 { 95 ebi: ebi@10000000 {
96 compatible = "atmel,at91rm9200-nand"; 96 compatible = "atmel,at91sam9rl-ebi";
97 #address-cells = <1>; 97 #address-cells = <2>;
98 #size-cells = <1>; 98 #size-cells = <1>;
99 reg = <0x40000000 0x10000000>, 99 atmel,smc = <&smc>;
100 <0xffffe800 0x200>; 100 atmel,matrix = <&matrix>;
101 atmel,nand-addr-offset = <21>; 101 reg = <0x10000000 0x80000000>;
102 atmel,nand-cmd-offset = <22>; 102 ranges = <0x0 0x0 0x10000000 0x10000000
103 atmel,nand-has-dma; 103 0x1 0x0 0x20000000 0x10000000
104 pinctrl-names = "default"; 104 0x2 0x0 0x30000000 0x10000000
105 pinctrl-0 = <&pinctrl_nand>; 105 0x3 0x0 0x40000000 0x10000000
106 gpios = <&pioD 17 GPIO_ACTIVE_HIGH>, 106 0x4 0x0 0x50000000 0x10000000
107 <&pioB 6 GPIO_ACTIVE_HIGH>, 107 0x5 0x0 0x60000000 0x10000000>;
108 <0>; 108 clocks = <&mck>;
109 status = "disabled"; 109 status = "disabled";
110
111 nand_controller: nand-controller {
112 compatible = "atmel,at91sam9g45-nand-controller";
113 #address-cells = <2>;
114 #size-cells = <1>;
115 ranges;
116 status = "disabled";
117 };
110 }; 118 };
111 119
112 apb { 120 apb {
@@ -364,6 +372,16 @@
364 reg = <0xffffea00 0x200>; 372 reg = <0xffffea00 0x200>;
365 }; 373 };
366 374
375 smc: smc@ffffec00 {
376 compatible = "atmel,at91sam9260-smc", "syscon";
377 reg = <0xffffec00 0x200>;
378 };
379
380 matrix: matrix@ffffee00 {
381 compatible = "atmel,at91sam9rl-matrix", "syscon";
382 reg = <0xffffee00 0x200>;
383 };
384
367 aic: interrupt-controller@fffff000 { 385 aic: interrupt-controller@fffff000 {
368 #interrupt-cells = <3>; 386 #interrupt-cells = <3>;
369 compatible = "atmel,at91rm9200-aic"; 387 compatible = "atmel,at91rm9200-aic";
@@ -443,6 +461,14 @@
443 }; 461 };
444 }; 462 };
445 463
464 ebi {
465 pinctrl_ebi_addr_nand: ebi-addr-0 {
466 atmel,pins =
467 <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
468 <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;
469 };
470 };
471
446 fb { 472 fb {
447 pinctrl_fb: fb-0 { 473 pinctrl_fb: fb-0 {
448 atmel,pins = 474 atmel,pins =
@@ -507,28 +533,21 @@
507 }; 533 };
508 534
509 nand { 535 nand {
510 pinctrl_nand: nand-0 { 536 pinctrl_nand_rb: nand-rb-0 {
511 atmel,pins = 537 atmel,pins =
512 <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>, 538 <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
513 <AT91_PIOB 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
514 }; 539 };
515 540
516 pinctrl_nand0_ale_cle: nand_ale_cle-0 { 541 pinctrl_nand_cs: nand-cs-0 {
517 atmel,pins = 542 atmel,pins =
518 <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>, 543 <AT91_PIOB 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
519 <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;
520 }; 544 };
521 545
522 pinctrl_nand0_oe_we: nand_oe_we-0 { 546 pinctrl_nand_oe_we: nand-oe-we-0 {
523 atmel,pins = 547 atmel,pins =
524 <AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE>, 548 <AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE>,
525 <AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE>; 549 <AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;
526 }; 550 };
527
528 pinctrl_nand0_cs: nand_cs-0 {
529 atmel,pins =
530 <AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;
531 };
532 }; 551 };
533 552
534 pwm0 { 553 pwm0 {
diff --git a/arch/arm/boot/dts/at91sam9rlek.dts b/arch/arm/boot/dts/at91sam9rlek.dts
index 2e567d90fba8..9047c168298a 100644
--- a/arch/arm/boot/dts/at91sam9rlek.dts
+++ b/arch/arm/boot/dts/at91sam9rlek.dts
@@ -63,40 +63,63 @@
63 }; 63 };
64 }; 64 };
65 65
66 nand0: nand@40000000 { 66 ebi: ebi@10000000 {
67 nand-bus-width = <8>; 67 pinctrl-0 = <&pinctrl_ebi_addr_nand>;
68 nand-ecc-mode = "soft"; 68 pinctrl-names = "default";
69 nand-on-flash-bbt = <1>;
70 status = "okay"; 69 status = "okay";
71 70
72 at91bootstrap@0 { 71 nand_controller: nand-controller {
73 label = "at91bootstrap"; 72 status = "okay";
74 reg = <0x0 0x40000>; 73 pinctrl-0 = <&pinctrl_nand_oe_we
75 }; 74 &pinctrl_nand_cs
76 75 &pinctrl_nand_rb>;
77 bootloader@40000 { 76 pinctrl-names = "default";
78 label = "bootloader";
79 reg = <0x40000 0x80000>;
80 };
81
82 bootloaderenv@c0000 {
83 label = "bootloader env";
84 reg = <0xc0000 0xc0000>;
85 };
86
87 dtb@180000 {
88 label = "device tree";
89 reg = <0x180000 0x80000>;
90 };
91
92 kernel@200000 {
93 label = "kernel";
94 reg = <0x200000 0x600000>;
95 };
96 77
97 rootfs@800000 { 78 nand@3 {
98 label = "rootfs"; 79 reg = <0x3 0x0 0x800000>;
99 reg = <0x800000 0x0f800000>; 80 rb-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
81 cs-gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
82 nand-bus-width = <8>;
83 nand-ecc-mode = "soft";
84 nand-on-flash-bbt;
85 label = "atmel_nand";
86
87 partitions {
88 compatible = "fixed-partitions";
89 #address-cells = <1>;
90 #size-cells = <1>;
91
92 at91bootstrap@0 {
93 label = "at91bootstrap";
94 reg = <0x0 0x40000>;
95 };
96
97 bootloader@40000 {
98 label = "bootloader";
99 reg = <0x40000 0x80000>;
100 };
101
102 bootloaderenv@c0000 {
103 label = "bootloader env";
104 reg = <0xc0000 0xc0000>;
105 };
106
107 dtb@180000 {
108 label = "device tree";
109 reg = <0x180000 0x80000>;
110 };
111
112 kernel@200000 {
113 label = "kernel";
114 reg = <0x200000 0x600000>;
115 };
116
117 rootfs@800000 {
118 label = "rootfs";
119 reg = <0x800000 0x0f800000>;
120 };
121 };
122 };
100 }; 123 };
101 }; 124 };
102 125
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index f66bae925705..57f307541d2e 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -97,6 +97,17 @@
97 atmel,external-irqs = <31>; 97 atmel,external-irqs = <31>;
98 }; 98 };
99 99
100 matrix: matrix@ffffde00 {
101 compatible = "atmel,at91sam9x5-matrix", "syscon";
102 reg = <0xffffde00 0x100>;
103 };
104
105 pmecc: ecc-engine@ffffe000 {
106 compatible = "atmel,at91sam9g45-pmecc";
107 reg = <0xffffe000 0x600>,
108 <0xffffe600 0x200>;
109 };
110
100 ramc0: ramc@ffffe800 { 111 ramc0: ramc@ffffe800 {
101 compatible = "atmel,at91sam9g45-ddramc"; 112 compatible = "atmel,at91sam9g45-ddramc";
102 reg = <0xffffe800 0x200>; 113 reg = <0xffffe800 0x200>;
@@ -104,6 +115,11 @@
104 clock-names = "ddrck"; 115 clock-names = "ddrck";
105 }; 116 };
106 117
118 smc: smc@ffffea00 {
119 compatible = "atmel,at91sam9260-smc", "syscon";
120 reg = <0xffffea00 0x200>;
121 };
122
107 pmc: pmc@fffffc00 { 123 pmc: pmc@fffffc00 {
108 compatible = "atmel,at91sam9x5-pmc", "syscon"; 124 compatible = "atmel,at91sam9x5-pmc", "syscon";
109 reg = <0xfffffc00 0x200>; 125 reg = <0xfffffc00 0x200>;
@@ -465,6 +481,38 @@
465 }; 481 };
466 }; 482 };
467 483
484 ebi {
485 pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
486 atmel,pins =
487 <AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE
488 AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE
489 AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE
490 AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE
491 AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE
492 AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE
493 AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE
494 AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
495 };
496
497 pinctrl_ebi_data_8_15: ebi-data-msb-0 {
498 atmel,pins =
499 <AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE
500 AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE
501 AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE
502 AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE
503 AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE
504 AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE
505 AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE
506 AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
507 };
508
509 pinctrl_ebi_addr_nand: ebi-addr-0 {
510 atmel,pins =
511 <AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE
512 AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;
513 };
514 };
515
468 usart0 { 516 usart0 {
469 pinctrl_usart0: usart0-0 { 517 pinctrl_usart0: usart0-0 {
470 atmel,pins = 518 atmel,pins =
@@ -551,34 +599,20 @@
551 }; 599 };
552 600
553 nand { 601 nand {
554 pinctrl_nand: nand-0 { 602 pinctrl_nand_oe_we: nand-oe-we-0 {
603 atmel,pins =
604 <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE
605 AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;
606 };
607
608 pinctrl_nand_rb: nand-rb-0 {
555 atmel,pins = 609 atmel,pins =
556 <AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD0 periph A Read Enable */ 610 <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
557 AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD1 periph A Write Enable */ 611 };
558 AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD2 periph A Address Latch Enable */ 612
559 AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD3 periph A Command Latch Enable */ 613 pinctrl_nand_cs: nand-cs-0 {
560 AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PD4 gpio Chip Enable pin pull_up */
561 AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PD5 gpio RDY/BUSY pin pull_up */
562 AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD6 periph A Data bit 0 */
563 AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD7 periph A Data bit 1 */
564 AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD8 periph A Data bit 2 */
565 AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD9 periph A Data bit 3 */
566 AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD10 periph A Data bit 4 */
567 AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD11 periph A Data bit 5 */
568 AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD12 periph A Data bit 6 */
569 AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD13 periph A Data bit 7 */
570 };
571
572 pinctrl_nand_16bits: nand_16bits-0 {
573 atmel,pins = 614 atmel,pins =
574 <AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD14 periph A Data bit 8 */ 615 <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
575 AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD15 periph A Data bit 9 */
576 AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD16 periph A Data bit 10 */
577 AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD17 periph A Data bit 11 */
578 AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD18 periph A Data bit 12 */
579 AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD19 periph A Data bit 13 */
580 AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD20 periph A Data bit 14 */
581 AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD21 periph A Data bit 15 */
582 }; 616 };
583 }; 617 };
584 618
@@ -1197,28 +1231,6 @@
1197 }; 1231 };
1198 }; 1232 };
1199 1233
1200 nand0: nand@40000000 {
1201 compatible = "atmel,at91rm9200-nand";
1202 #address-cells = <1>;
1203 #size-cells = <1>;
1204 reg = <0x40000000 0x10000000
1205 0xffffe000 0x600 /* PMECC Registers */
1206 0xffffe600 0x200 /* PMECC Error Location Registers */
1207 0x00108000 0x18000 /* PMECC looup table in ROM code */
1208 >;
1209 atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
1210 atmel,nand-addr-offset = <21>;
1211 atmel,nand-cmd-offset = <22>;
1212 atmel,nand-has-dma;
1213 pinctrl-names = "default";
1214 pinctrl-0 = <&pinctrl_nand>;
1215 gpios = <&pioD 5 GPIO_ACTIVE_HIGH
1216 &pioD 4 GPIO_ACTIVE_HIGH
1217 0
1218 >;
1219 status = "disabled";
1220 };
1221
1222 usb0: ohci@00600000 { 1234 usb0: ohci@00600000 {
1223 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1235 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1224 reg = <0x00600000 0x100000>; 1236 reg = <0x00600000 0x100000>;
@@ -1236,6 +1248,32 @@
1236 clock-names = "usb_clk", "ehci_clk"; 1248 clock-names = "usb_clk", "ehci_clk";
1237 status = "disabled"; 1249 status = "disabled";
1238 }; 1250 };
1251
1252 ebi: ebi@10000000 {
1253 compatible = "atmel,at91sam9x5-ebi";
1254 #address-cells = <2>;
1255 #size-cells = <1>;
1256 atmel,smc = <&smc>;
1257 atmel,matrix = <&matrix>;
1258 reg = <0x10000000 0x60000000>;
1259 ranges = <0x0 0x0 0x10000000 0x10000000
1260 0x1 0x0 0x20000000 0x10000000
1261 0x2 0x0 0x30000000 0x10000000
1262 0x3 0x0 0x40000000 0x10000000
1263 0x4 0x0 0x50000000 0x10000000
1264 0x5 0x0 0x60000000 0x10000000>;
1265 clocks = <&mck>;
1266 status = "disabled";
1267
1268 nand_controller: nand-controller {
1269 compatible = "atmel,at91sam9g45-nand-controller";
1270 ecc-engine = <&pmecc>;
1271 #address-cells = <2>;
1272 #size-cells = <1>;
1273 ranges;
1274 status = "disabled";
1275 };
1276 };
1239 }; 1277 };
1240 1278
1241 i2c-gpio-0 { 1279 i2c-gpio-0 {
diff --git a/arch/arm/boot/dts/at91sam9x5cm.dtsi b/arch/arm/boot/dts/at91sam9x5cm.dtsi
index b098ad8cd93a..bdeaa0b64a5b 100644
--- a/arch/arm/boot/dts/at91sam9x5cm.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5cm.dtsi
@@ -37,38 +37,61 @@
37 }; 37 };
38 }; 38 };
39 39
40 nand0: nand@40000000 { 40 ebi: ebi@10000000 {
41 nand-bus-width = <8>; 41 pinctrl-0 = <&pinctrl_ebi_addr_nand
42 nand-ecc-mode = "hw"; 42 &pinctrl_ebi_data_0_7>;
43 atmel,has-pmecc; /* Enable PMECC */ 43 pinctrl-names = "default";
44 atmel,pmecc-cap = <2>;
45 atmel,pmecc-sector-size = <512>;
46 nand-on-flash-bbt;
47 status = "okay"; 44 status = "okay";
48 45
49 at91bootstrap@0 { 46 nand_controller: nand-controller {
50 label = "at91bootstrap"; 47 status = "okay";
51 reg = <0x0 0x40000>; 48 pinctrl-0 = <&pinctrl_nand_oe_we
52 }; 49 &pinctrl_nand_cs
53 50 &pinctrl_nand_rb>;
54 uboot@40000 { 51 pinctrl-names = "default";
55 label = "u-boot"; 52
56 reg = <0x40000 0x80000>; 53 nand@3 {
57 }; 54 reg = <0x3 0x0 0x800000>;
58 55 rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
59 ubootenv@c0000 { 56 cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
60 label = "U-Boot Env"; 57 nand-bus-width = <8>;
61 reg = <0xc0000 0x140000>; 58 nand-ecc-mode = "hw";
62 }; 59 nand-ecc-strength = <2>;
63 60 nand-ecc-step-size = <512>;
64 kernel@200000 { 61 nand-on-flash-bbt;
65 label = "kernel"; 62 label = "atmel_nand";
66 reg = <0x200000 0x600000>; 63
67 }; 64 partitions {
68 65 compatible = "fixed-partitions";
69 rootfs@800000 { 66 #address-cells = <1>;
70 label = "rootfs"; 67 #size-cells = <1>;
71 reg = <0x800000 0x1f800000>; 68
69 at91bootstrap@0 {
70 label = "at91bootstrap";
71 reg = <0x0 0x40000>;
72 };
73
74 uboot@40000 {
75 label = "u-boot";
76 reg = <0x40000 0x80000>;
77 };
78
79 ubootenv@c0000 {
80 label = "U-Boot Env";
81 reg = <0xc0000 0x140000>;
82 };
83
84 kernel@200000 {
85 label = "kernel";
86 reg = <0x200000 0x600000>;
87 };
88
89 rootfs@800000 {
90 label = "rootfs";
91 reg = <0x800000 0x1f800000>;
92 };
93 };
94 };
72 }; 95 };
73 }; 96 };
74 }; 97 };
diff --git a/arch/arm/boot/dts/ethernut5.dts b/arch/arm/boot/dts/ethernut5.dts
index 4687229a3ab9..123b203be06c 100644
--- a/arch/arm/boot/dts/ethernut5.dts
+++ b/arch/arm/boot/dts/ethernut5.dts
@@ -55,25 +55,38 @@
55 }; 55 };
56 }; 56 };
57 57
58 nand0: nand@40000000 { 58 ebi: ebi@10000000 {
59 nand-bus-width = <8>;
60 nand-ecc-mode = "soft";
61 nand-on-flash-bbt;
62 status = "okay"; 59 status = "okay";
63 60
64 gpios = <0 61 nand_controller: nand-controller {
65 &pioC 14 GPIO_ACTIVE_HIGH 62 status = "okay";
66 0 63 pinctrl-0 = <&pinctrl_nand_cs>;
67 >; 64 pinctrl-names = "default";
68 65
69 root@0 { 66 nand: nand@3 {
70 label = "root"; 67 reg = <0x3 0x0 0x800000>;
71 reg = <0x0 0x08000000>; 68 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
72 }; 69 nand-bus-width = <8>;
73 70 nand-ecc-mode = "soft";
74 data@20000 { 71 nand-on-flash-bbt;
75 label = "data"; 72 label = "atmel_nand";
76 reg = <0x08000000 0x38000000>; 73
74 partitions {
75 compatible = "fixed-partitions";
76 #address-cells = <1>;
77 #size-cells = <1>;
78
79 root@0 {
80 label = "root";
81 reg = <0x0 0x08000000>;
82 };
83
84 data@20000 {
85 label = "data";
86 reg = <0x08000000 0x38000000>;
87 };
88 };
89 };
77 }; 90 };
78 }; 91 };
79 92
diff --git a/arch/arm/boot/dts/ge863-pro3.dtsi b/arch/arm/boot/dts/ge863-pro3.dtsi
index 4aee5cc75fa4..8613944ea5c5 100644
--- a/arch/arm/boot/dts/ge863-pro3.dtsi
+++ b/arch/arm/boot/dts/ge863-pro3.dtsi
@@ -23,20 +23,39 @@
23 }; 23 };
24 }; 24 };
25 25
26 nand0: nand@40000000 { 26 ebi: ebi@10000000 {
27 nand-bus-width = <8>;
28 nand-ecc-mode = "soft";
29 nand-on-flash-bbt;
30 status = "okay"; 27 status = "okay";
31 28
32 boot@0 { 29 nand_controller: nand-controller {
33 label = "boot"; 30 status = "okay";
34 reg = <0x0 0x7c0000>; 31 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
35 }; 32 pinctrl-names = "default";
33
34 nand@3 {
35 reg = <0x3 0x0 0x800000>;
36 rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
37 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
38 nand-bus-width = <8>;
39 nand-ecc-mode = "soft";
40 nand-on-flash-bbt;
41 label = "atmel_nand";
42
43 partitions {
44 compatible = "fixed-partitions";
45 #address-cells = <1>;
46 #size-cells = <1>;
47
48 boot@0 {
49 label = "boot";
50 reg = <0x0 0x7c0000>;
51 };
36 52
37 root@07c0000 { 53 root@07c0000 {
38 label = "root"; 54 label = "root";
39 reg = <0x7c0000 0x7840000>; 55 reg = <0x7c0000 0x7840000>;
56 };
57 };
58 };
40 }; 59 };
41 }; 60 };
42 }; 61 };
diff --git a/arch/arm/boot/dts/pm9g45.dts b/arch/arm/boot/dts/pm9g45.dts
index 0abd7bf17568..3139221737ee 100644
--- a/arch/arm/boot/dts/pm9g45.dts
+++ b/arch/arm/boot/dts/pm9g45.dts
@@ -37,12 +37,10 @@
37 }; 37 };
38 38
39 pinctrl@fffff200 { 39 pinctrl@fffff200 {
40 40 nand {
41 board { 41 pinctrl_nand_rb: nand-rb-0 {
42 pinctrl_board_nand: nand0-board {
43 atmel,pins = 42 atmel,pins =
44 <AT91_PIOD 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP /* PD3 gpio RDY pin pull_up*/ 43 <AT91_PIOD 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
45 AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PC14 gpio enable pin pull_up */
46 }; 44 };
47 }; 45 };
48 46
@@ -71,50 +69,61 @@
71 phy-mode = "rmii"; 69 phy-mode = "rmii";
72 status = "okay"; 70 status = "okay";
73 }; 71 };
74
75 }; 72 };
76 73
77 nand0: nand@40000000 { 74 ebi: ebi@10000000 {
78 nand-bus-width = <8>;
79 nand-ecc-mode = "soft";
80 nand-on-flash-bbt;
81 pinctrl-0 = <&pinctrl_board_nand>;
82
83 gpios = <&pioD 3 GPIO_ACTIVE_HIGH
84 &pioC 14 GPIO_ACTIVE_HIGH
85 0
86 >;
87
88 status = "okay"; 75 status = "okay";
89 76
90 at91bootstrap@0 { 77 nand_controller: nand-controller {
91 label = "at91bootstrap"; 78 status = "okay";
92 reg = <0x0 0x20000>; 79 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
93 }; 80 pinctrl-names = "default";
94 81
95 barebox@20000 { 82 nand@3 {
96 label = "barebox"; 83 reg = <0x3 0x0 0x800000>;
97 reg = <0x20000 0x40000>; 84 rb-gpios = <&pioD 3 GPIO_ACTIVE_HIGH>;
98 }; 85 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
99 86 nand-bus-width = <8>;
100 bareboxenv@60000 { 87 nand-ecc-mode = "soft";
101 label = "bareboxenv"; 88 nand-on-flash-bbt;
102 reg = <0x60000 0x1A0000>; 89 label = "atmel_nand";
103 }; 90
104 91 partitions {
105 kernel@200000 { 92 compatible = "fixed-partitions";
106 label = "bareboxenv2"; 93 #address-cells = <1>;
107 reg = <0x200000 0x300000>; 94 #size-cells = <1>;
108 }; 95
109 96 at91bootstrap@0 {
110 kernel@500000 { 97 label = "at91bootstrap";
111 label = "root"; 98 reg = <0x0 0x20000>;
112 reg = <0x500000 0x400000>; 99 };
113 }; 100
114 101 barebox@20000 {
115 data@900000 { 102 label = "barebox";
116 label = "data"; 103 reg = <0x20000 0x40000>;
117 reg = <0x900000 0x8340000>; 104 };
105
106 bareboxenv@60000 {
107 label = "bareboxenv";
108 reg = <0x60000 0x1A0000>;
109 };
110
111 kernel@200000 {
112 label = "bareboxenv2";
113 reg = <0x200000 0x300000>;
114 };
115
116 kernel@500000 {
117 label = "root";
118 reg = <0x500000 0x400000>;
119 };
120
121 data@900000 {
122 label = "data";
123 reg = <0x900000 0x8340000>;
124 };
125 };
126 };
118 }; 127 };
119 }; 128 };
120 129
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index 8067c71c3a38..cc06da394366 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -135,6 +135,12 @@
135 #size-cells = <1>; 135 #size-cells = <1>;
136 ranges; 136 ranges;
137 137
138 nfc_sram: sram@00100000 {
139 compatible = "mmio-sram";
140 no-memory-wc;
141 reg = <0x00100000 0x2400>;
142 };
143
138 usb0: gadget@00300000 { 144 usb0: gadget@00300000 {
139 #address-cells = <1>; 145 #address-cells = <1>;
140 #size-cells = <0>; 146 #size-cells = <0>;
@@ -291,6 +297,32 @@
291 cache-level = <2>; 297 cache-level = <2>;
292 }; 298 };
293 299
300 ebi: ebi@10000000 {
301 compatible = "atmel,sama5d3-ebi";
302 #address-cells = <2>;
303 #size-cells = <1>;
304 atmel,smc = <&hsmc>;
305 reg = <0x10000000 0x10000000
306 0x40000000 0x30000000>;
307 ranges = <0x0 0x0 0x10000000 0x10000000
308 0x1 0x0 0x60000000 0x10000000
309 0x2 0x0 0x70000000 0x10000000
310 0x3 0x0 0x80000000 0x10000000>;
311 clocks = <&mck>;
312 status = "disabled";
313
314 nand_controller: nand-controller {
315 compatible = "atmel,sama5d3-nand-controller";
316 atmel,nfc-sram = <&nfc_sram>;
317 atmel,nfc-io = <&nfc_io>;
318 ecc-engine = <&pmecc>;
319 #address-cells = <2>;
320 #size-cells = <1>;
321 ranges;
322 status = "disabled";
323 };
324 };
325
294 nand0: nand@80000000 { 326 nand0: nand@80000000 {
295 compatible = "atmel,sama5d2-nand"; 327 compatible = "atmel,sama5d2-nand";
296 #address-cells = <1>; 328 #address-cells = <1>;
@@ -347,6 +379,11 @@
347 status = "disabled"; 379 status = "disabled";
348 }; 380 };
349 381
382 nfc_io: nfc-io@c0000000 {
383 compatible = "atmel,sama5d3-nfc-io", "syscon";
384 reg = <0xc0000000 0x8000000>;
385 };
386
350 apb { 387 apb {
351 compatible = "simple-bus"; 388 compatible = "simple-bus";
352 #address-cells = <1>; 389 #address-cells = <1>;
@@ -762,6 +799,18 @@
762 atmel,clk-output-range = <0 83000000>; 799 atmel,clk-output-range = <0 83000000>;
763 }; 800 };
764 801
802 can0_clk: can0_clk {
803 #clock-cells = <0>;
804 reg = <56>;
805 atmel,clk-output-range = <0 83000000>;
806 };
807
808 can1_clk: can1_clk {
809 #clock-cells = <0>;
810 reg = <57>;
811 atmel,clk-output-range = <0 83000000>;
812 };
813
765 classd_clk: classd_clk { 814 classd_clk: classd_clk {
766 #clock-cells = <0>; 815 #clock-cells = <0>;
767 reg = <59>; 816 reg = <59>;
@@ -890,6 +939,18 @@
890 #clock-cells = <0>; 939 #clock-cells = <0>;
891 reg = <55>; 940 reg = <55>;
892 }; 941 };
942
943 can0_gclk: can0_gclk {
944 #clock-cells = <0>;
945 reg = <56>;
946 atmel,clk-output-range = <0 80000000>;
947 };
948
949 can1_gclk: can1_gclk {
950 #clock-cells = <0>;
951 reg = <57>;
952 atmel,clk-output-range = <0 80000000>;
953 };
893 }; 954 };
894 }; 955 };
895 956
@@ -986,6 +1047,22 @@
986 clock-names = "t0_clk", "slow_clk"; 1047 clock-names = "t0_clk", "slow_clk";
987 }; 1048 };
988 1049
1050 hsmc: hsmc@f8014000 {
1051 compatible = "atmel,sama5d3-smc", "syscon", "simple-mfd";
1052 reg = <0xf8014000 0x1000>;
1053 interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
1054 clocks = <&hsmc_clk>;
1055 #address-cells = <1>;
1056 #size-cells = <1>;
1057 ranges;
1058
1059 pmecc: ecc-engine@ffffc070 {
1060 compatible = "atmel,sama5d2-pmecc";
1061 reg = <0xffffc070 0x490>,
1062 <0xffffc500 0x100>;
1063 };
1064 };
1065
989 pdmic: pdmic@f8018000 { 1066 pdmic: pdmic@f8018000 {
990 compatible = "atmel,sama5d2-pdmic"; 1067 compatible = "atmel,sama5d2-pdmic";
991 reg = <0xf8018000 0x124>; 1068 reg = <0xf8018000 0x124>;
@@ -1065,6 +1142,14 @@
1065 status = "disabled"; 1142 status = "disabled";
1066 }; 1143 };
1067 1144
1145 pwm0: pwm@f802c000 {
1146 compatible = "atmel,sama5d2-pwm";
1147 reg = <0xf802c000 0x4000>;
1148 interrupts = <38 IRQ_TYPE_LEVEL_HIGH 7>;
1149 #pwm-cells = <3>;
1150 clocks = <&pwm_clk>;
1151 };
1152
1068 sfr: sfr@f8030000 { 1153 sfr: sfr@f8030000 {
1069 compatible = "atmel,sama5d2-sfr", "syscon"; 1154 compatible = "atmel,sama5d2-sfr", "syscon";
1070 reg = <0xf8030000 0x98>; 1155 reg = <0xf8030000 0x98>;
@@ -1144,6 +1229,22 @@
1144 clocks = <&clk32k>; 1229 clocks = <&clk32k>;
1145 }; 1230 };
1146 1231
1232 can0: can@f8054000 {
1233 compatible = "bosch,m_can";
1234 reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
1235 reg-names = "m_can", "message_ram";
1236 interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
1237 <64 IRQ_TYPE_LEVEL_HIGH 7>;
1238 interrupt-names = "int0", "int1";
1239 clocks = <&can0_clk>, <&can0_gclk>;
1240 clock-names = "hclk", "cclk";
1241 assigned-clocks = <&can0_gclk>;
1242 assigned-clock-parents = <&utmi>;
1243 assigned-clock-rates = <40000000>;
1244 bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
1245 status = "disabled";
1246 };
1247
1147 spi1: spi@fc000000 { 1248 spi1: spi@fc000000 {
1148 compatible = "atmel,at91rm9200-spi"; 1249 compatible = "atmel,at91rm9200-spi";
1149 reg = <0xfc000000 0x100>; 1250 reg = <0xfc000000 0x100>;
@@ -1305,6 +1406,22 @@
1305 status = "okay"; 1406 status = "okay";
1306 }; 1407 };
1307 1408
1409 can1: can@fc050000 {
1410 compatible = "bosch,m_can";
1411 reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
1412 reg-names = "m_can", "message_ram";
1413 interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
1414 <65 IRQ_TYPE_LEVEL_HIGH 7>;
1415 interrupt-names = "int0", "int1";
1416 clocks = <&can1_clk>, <&can1_gclk>;
1417 clock-names = "hclk", "cclk";
1418 assigned-clocks = <&can1_gclk>;
1419 assigned-clock-parents = <&utmi>;
1420 assigned-clock-rates = <40000000>;
1421 bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>;
1422 status = "disabled";
1423 };
1424
1308 sfrbu: sfr@fc05c000 { 1425 sfrbu: sfr@fc05c000 {
1309 compatible = "atmel,sama5d2-sfrbu", "syscon"; 1426 compatible = "atmel,sama5d2-sfrbu", "syscon";
1310 reg = <0xfc05c000 0x20>; 1427 reg = <0xfc05c000 0x20>;
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index b06448ba6649..554d0bdedc7a 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -429,6 +429,22 @@
429 clocks = <&trng_clk>; 429 clocks = <&trng_clk>;
430 }; 430 };
431 431
432 hsmc: hsmc@ffffc000 {
433 compatible = "atmel,sama5d3-smc", "syscon", "simple-mfd";
434 reg = <0xffffc000 0x1000>;
435 interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
436 clocks = <&hsmc_clk>;
437 #address-cells = <1>;
438 #size-cells = <1>;
439 ranges;
440
441 pmecc: ecc-engine@ffffc070 {
442 compatible = "atmel,at91sam9g45-pmecc";
443 reg = <0xffffc070 0x490>,
444 <0xffffc500 0x100>;
445 };
446 };
447
432 dma0: dma-controller@ffffe600 { 448 dma0: dma-controller@ffffe600 {
433 compatible = "atmel,at91sam9g45-dma"; 449 compatible = "atmel,at91sam9g45-dma";
434 reg = <0xffffe600 0x200>; 450 reg = <0xffffe600 0x200>;
@@ -554,6 +570,66 @@
554 }; 570 };
555 }; 571 };
556 572
573 ebi {
574 pinctrl_ebi_addr: ebi-addr-0 {
575 atmel,pins =
576 <AT91_PIOE 1 AT91_PERIPH_A AT91_PINCTRL_NONE
577 AT91_PIOE 2 AT91_PERIPH_A AT91_PINCTRL_NONE
578 AT91_PIOE 3 AT91_PERIPH_A AT91_PINCTRL_NONE
579 AT91_PIOE 4 AT91_PERIPH_A AT91_PINCTRL_NONE
580 AT91_PIOE 5 AT91_PERIPH_A AT91_PINCTRL_NONE
581 AT91_PIOE 6 AT91_PERIPH_A AT91_PINCTRL_NONE
582 AT91_PIOE 7 AT91_PERIPH_A AT91_PINCTRL_NONE
583 AT91_PIOE 8 AT91_PERIPH_A AT91_PINCTRL_NONE
584 AT91_PIOE 9 AT91_PERIPH_A AT91_PINCTRL_NONE
585 AT91_PIOE 10 AT91_PERIPH_A AT91_PINCTRL_NONE
586 AT91_PIOE 11 AT91_PERIPH_A AT91_PINCTRL_NONE
587 AT91_PIOE 12 AT91_PERIPH_A AT91_PINCTRL_NONE
588 AT91_PIOE 13 AT91_PERIPH_A AT91_PINCTRL_NONE
589 AT91_PIOE 14 AT91_PERIPH_A AT91_PINCTRL_NONE
590 AT91_PIOE 15 AT91_PERIPH_A AT91_PINCTRL_NONE
591 AT91_PIOE 16 AT91_PERIPH_A AT91_PINCTRL_NONE
592 AT91_PIOE 17 AT91_PERIPH_A AT91_PINCTRL_NONE
593 AT91_PIOE 18 AT91_PERIPH_A AT91_PINCTRL_NONE
594 AT91_PIOE 19 AT91_PERIPH_A AT91_PINCTRL_NONE
595 AT91_PIOE 20 AT91_PERIPH_A AT91_PINCTRL_NONE
596 AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE
597 AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_NONE
598 AT91_PIOE 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
599 };
600
601 pinctrl_ebi_nand_addr: ebi-addr-1 {
602 atmel,pins =
603 <AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE
604 AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;
605 };
606
607 pinctrl_ebi_cs0: ebi-cs0-0 {
608 atmel,pins =
609 <AT91_PIOE 24 AT91_PERIPH_A AT91_PINCTRL_NONE>;
610 };
611
612 pinctrl_ebi_cs1: ebi-cs1-0 {
613 atmel,pins =
614 <AT91_PIOE 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
615 };
616
617 pinctrl_ebi_cs2: ebi-cs2-0 {
618 atmel,pins =
619 <AT91_PIOE 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
620 };
621
622 pinctrl_ebi_nwait: ebi-nwait-0 {
623 atmel,pins =
624 <AT91_PIOE 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
625 };
626
627 pinctrl_ebi_nwr1_nbs1: ebi-nwr1-nbs1-0 {
628 atmel,pins =
629 <AT91_PIOE 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
630 };
631 };
632
557 i2c0 { 633 i2c0 {
558 pinctrl_i2c0: i2c0-0 { 634 pinctrl_i2c0: i2c0-0 {
559 atmel,pins = 635 atmel,pins =
@@ -1326,6 +1402,12 @@
1326 }; 1402 };
1327 }; 1403 };
1328 1404
1405 nfc_sram: sram@200000 {
1406 compatible = "mmio-sram";
1407 no-memory-wc;
1408 reg = <0x200000 0x2400>;
1409 };
1410
1329 usb0: gadget@00500000 { 1411 usb0: gadget@00500000 {
1330 #address-cells = <1>; 1412 #address-cells = <1>;
1331 #size-cells = <0>; 1413 #size-cells = <0>;
@@ -1461,36 +1543,35 @@
1461 status = "disabled"; 1543 status = "disabled";
1462 }; 1544 };
1463 1545
1464 nand0: nand@60000000 { 1546 ebi: ebi@10000000 {
1465 compatible = "atmel,at91rm9200-nand"; 1547 compatible = "atmel,sama5d3-ebi";
1466 #address-cells = <1>; 1548 #address-cells = <2>;
1467 #size-cells = <1>; 1549 #size-cells = <1>;
1468 ranges; 1550 atmel,smc = <&hsmc>;
1469 reg = < 0x60000000 0x01000000 /* EBI CS3 */ 1551 reg = <0x10000000 0x10000000
1470 0xffffc070 0x00000490 /* SMC PMECC regs */ 1552 0x40000000 0x30000000>;
1471 0xffffc500 0x00000100 /* SMC PMECC Error Location regs */ 1553 ranges = <0x0 0x0 0x10000000 0x10000000
1472 0x00110000 0x00018000 /* ROM code */ 1554 0x1 0x0 0x40000000 0x10000000
1473 >; 1555 0x2 0x0 0x50000000 0x10000000
1474 interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>; 1556 0x3 0x0 0x60000000 0x10000000>;
1475 atmel,nand-addr-offset = <21>; 1557 clocks = <&mck>;
1476 atmel,nand-cmd-offset = <22>;
1477 atmel,nand-has-dma;
1478 pinctrl-names = "default";
1479 pinctrl-0 = <&pinctrl_nand0_ale_cle>;
1480 atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
1481 status = "disabled"; 1558 status = "disabled";
1482 1559
1483 nfc@70000000 { 1560 nand_controller: nand-controller {
1484 compatible = "atmel,sama5d3-nfc"; 1561 compatible = "atmel,sama5d3-nand-controller";
1485 #address-cells = <1>; 1562 atmel,nfc-sram = <&nfc_sram>;
1563 atmel,nfc-io = <&nfc_io>;
1564 ecc-engine = <&pmecc>;
1565 #address-cells = <2>;
1486 #size-cells = <1>; 1566 #size-cells = <1>;
1487 reg = < 1567 ranges;
1488 0x70000000 0x08000000 /* NFC Command Registers */ 1568 status = "disabled";
1489 0xffffc000 0x00000070 /* NFC HSMC regs */
1490 0x00200000 0x00100000 /* NFC SRAM banks */
1491 >;
1492 clocks = <&hsmc_clk>;
1493 }; 1569 };
1494 }; 1570 };
1571
1572 nfc_io: nfc-io@70000000 {
1573 compatible = "atmel,sama5d3-nfc-io", "syscon";
1574 reg = <0x70000000 0x8000000>;
1575 };
1495 }; 1576 };
1496}; 1577};
diff --git a/arch/arm/boot/dts/sama5d3xcm.dtsi b/arch/arm/boot/dts/sama5d3xcm.dtsi
index b5e111b29da1..9506daf5efb6 100644
--- a/arch/arm/boot/dts/sama5d3xcm.dtsi
+++ b/arch/arm/boot/dts/sama5d3xcm.dtsi
@@ -36,43 +36,82 @@
36 }; 36 };
37 }; 37 };
38 38
39 nand0: nand@60000000 { 39 ebi@10000000 {
40 nand-bus-width = <8>; 40 pinctrl-0 = <&pinctrl_ebi_addr &pinctrl_ebi_cs0>;
41 nand-ecc-mode = "hw"; 41 pinctr-name = "default";
42 atmel,has-pmecc;
43 atmel,pmecc-cap = <4>;
44 atmel,pmecc-sector-size = <512>;
45 nand-on-flash-bbt;
46 status = "okay"; 42 status = "okay";
47 43
48 at91bootstrap@0 { 44 nor: flash@0,0 {
49 label = "at91bootstrap"; 45 compatible = "cfi-flash";
50 reg = <0x0 0x40000>; 46 linux,mtd-name = "physmap-flash.0";
47 #address-cells = <1>;
48 #size-cells = <1>;
49 reg = <0x0 0x0 0x1000000>;
50 bank-width = <2>;
51 atmel,smc-read-mode = "nrd";
52 atmel,smc-write-mode = "nwe";
53 atmel,smc-bus-width = <16>;
54 atmel,smc-ncs-rd-setup-ns = <0>;
55 atmel,smc-ncs-wr-setup-ns = <0>;
56 atmel,smc-nwe-setup-ns = <8>;
57 atmel,smc-nrd-setup-ns = <16>;
58 atmel,smc-ncs-rd-pulse-ns = <84>;
59 atmel,smc-ncs-wr-pulse-ns = <84>;
60 atmel,smc-nrd-pulse-ns = <76>;
61 atmel,smc-nwe-pulse-ns = <76>;
62 atmel,smc-nrd-cycle-ns = <107>;
63 atmel,smc-nwe-cycle-ns = <84>;
64 atmel,smc-tdf-ns = <16>;
51 }; 65 };
52 66
53 bootloader@40000 { 67 nand_controller: nand-controller {
54 label = "bootloader"; 68 status = "okay";
55 reg = <0x40000 0x80000>;
56 };
57 69
58 bootloaderenv@c0000 { 70 nand@3 {
59 label = "bootloader env"; 71 reg = <0x3 0x0 0x2>;
60 reg = <0xc0000 0xc0000>; 72 atmel,rb = <0>;
61 }; 73 nand-ecc-mode = "hw";
74 nand-ecc-strength = <4>;
75 nand-ecc-step-size = <512>;
76 nand-on-flash-bbt;
77 label = "atmel_nand";
62 78
63 dtb@180000 { 79 partitions {
64 label = "device tree"; 80 compatible = "fixed-partitions";
65 reg = <0x180000 0x80000>; 81 #address-cells = <1>;
66 }; 82 #size-cells = <1>;
67 83
68 kernel@200000 { 84 at91bootstrap@0 {
69 label = "kernel"; 85 label = "at91bootstrap";
70 reg = <0x200000 0x600000>; 86 reg = <0x0 0x40000>;
71 }; 87 };
88
89 bootloader@40000 {
90 label = "bootloader";
91 reg = <0x40000 0x80000>;
92 };
93
94 bootloaderenv@c0000 {
95 label = "bootloader env";
96 reg = <0xc0000 0xc0000>;
97 };
98
99 dtb@180000 {
100 label = "device tree";
101 reg = <0x180000 0x80000>;
102 };
103
104 kernel@200000 {
105 label = "kernel";
106 reg = <0x200000 0x600000>;
107 };
72 108
73 rootfs@800000 { 109 rootfs@800000 {
74 label = "rootfs"; 110 label = "rootfs";
75 reg = <0x800000 0x0f800000>; 111 reg = <0x800000 0x0f800000>;
112 };
113 };
114 };
76 }; 115 };
77 }; 116 };
78 }; 117 };
diff --git a/arch/arm/boot/dts/sama5d3xcm_cmp.dtsi b/arch/arm/boot/dts/sama5d3xcm_cmp.dtsi
index dc7572bc7ff0..75cbf4d4ab1a 100644
--- a/arch/arm/boot/dts/sama5d3xcm_cmp.dtsi
+++ b/arch/arm/boot/dts/sama5d3xcm_cmp.dtsi
@@ -148,43 +148,60 @@
148 }; 148 };
149 }; 149 };
150 150
151 nand0: nand@60000000 { 151 ebi: ebi@10000000 {
152 nand-bus-width = <8>; 152 pinctrl-0 = <&pinctrl_ebi_nand_addr>;
153 nand-ecc-mode = "hw"; 153 pinctrl-names = "default";
154 atmel,has-pmecc;
155 atmel,pmecc-cap = <4>;
156 atmel,pmecc-sector-size = <512>;
157 nand-on-flash-bbt;
158 status = "okay"; 154 status = "okay";
159 155
160 at91bootstrap@0 { 156 nand_controller: nand-controller {
161 label = "at91bootstrap"; 157 status = "okay";
162 reg = <0x0 0x40000>; 158
163 }; 159 nand@3 {
160 reg = <0x3 0x0 0x2>;
161 atmel,rb = <0>;
162 nand-bus-width = <8>;
163 nand-ecc-mode = "hw";
164 nand-ecc-strength = <4>;
165 nand-ecc-step-size = <512>;
166 nand-on-flash-bbt;
167 label = "atmel_nand";
168
169 partitions {
170 compatible = "fixed-partitions";
171 #address-cells = <1>;
172 #size-cells = <1>;
173
174 at91bootstrap@0 {
175 label = "at91bootstrap";
176 reg = <0x0 0x40000>;
177 };
164 178
165 bootloader@40000 { 179 bootloader@40000 {
166 label = "bootloader"; 180 label = "bootloader";
167 reg = <0x40000 0x80000>; 181 reg = <0x40000 0x80000>;
168 }; 182 };
169 183
170 bootloaderenv@c0000 { 184 bootloaderenv@c0000 {
171 label = "bootloader env"; 185 label = "bootloader env";
172 reg = <0xc0000 0xc0000>; 186 reg = <0xc0000 0xc0000>;
173 }; 187 };
174 188
175 dtb@180000 { 189 dtb@180000 {
176 label = "device tree"; 190 label = "device tree";
177 reg = <0x180000 0x80000>; 191 reg = <0x180000 0x80000>;
178 }; 192 };
179 193
180 kernel@200000 { 194 kernel@200000 {
181 label = "kernel"; 195 label = "kernel";
182 reg = <0x200000 0x600000>; 196 reg = <0x200000 0x600000>;
183 }; 197 };
184 198
185 rootfs@800000 { 199 rootfs@800000 {
186 label = "rootfs"; 200 label = "rootfs";
187 reg = <0x800000 0x0f800000>; 201 reg = <0x800000 0x0f800000>;
202 };
203 };
204 };
188 }; 205 };
189 }; 206 };
190 }; 207 };
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index d3889c9d25a9..2fa36c525957 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -124,6 +124,12 @@
124 #size-cells = <1>; 124 #size-cells = <1>;
125 ranges; 125 ranges;
126 126
127 nfc_sram: sram@100000 {
128 compatible = "mmio-sram";
129 no-memory-wc;
130 reg = <0x100000 0x2400>;
131 };
132
127 usb0: gadget@00400000 { 133 usb0: gadget@00400000 {
128 #address-cells = <1>; 134 #address-cells = <1>;
129 #size-cells = <0>; 135 #size-cells = <0>;
@@ -280,37 +286,37 @@
280 cache-level = <2>; 286 cache-level = <2>;
281 }; 287 };
282 288
283 nand0: nand@80000000 { 289 ebi: ebi@10000000 {
284 compatible = "atmel,sama5d4-nand", "atmel,at91rm9200-nand"; 290 compatible = "atmel,sama5d3-ebi";
285 #address-cells = <1>; 291 #address-cells = <2>;
286 #size-cells = <1>; 292 #size-cells = <1>;
287 ranges; 293 atmel,smc = <&hsmc>;
288 reg = < 0x80000000 0x08000000 /* EBI CS3 */ 294 reg = <0x10000000 0x10000000
289 0xfc05c070 0x00000490 /* SMC PMECC regs */ 295 0x60000000 0x28000000>;
290 0xfc05c500 0x00000100 /* SMC PMECC Error Location regs */ 296 ranges = <0x0 0x0 0x10000000 0x10000000
291 >; 297 0x1 0x0 0x60000000 0x10000000
292 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 6>; 298 0x2 0x0 0x70000000 0x10000000
293 atmel,nand-addr-offset = <21>; 299 0x3 0x0 0x80000000 0x8000000>;
294 atmel,nand-cmd-offset = <22>; 300 clocks = <&mck>;
295 atmel,nand-has-dma;
296 pinctrl-names = "default";
297 pinctrl-0 = <&pinctrl_nand>;
298 status = "disabled"; 301 status = "disabled";
299 302
300 nfc@90000000 { 303 nand_controller: nand-controller {
301 compatible = "atmel,sama5d3-nfc"; 304 compatible = "atmel,sama5d3-nand-controller";
302 #address-cells = <1>; 305 atmel,nfc-sram = <&nfc_sram>;
306 atmel,nfc-io = <&nfc_io>;
307 ecc-engine = <&pmecc>;
308 #address-cells = <2>;
303 #size-cells = <1>; 309 #size-cells = <1>;
304 reg = < 310 ranges;
305 0x90000000 0x08000000 /* NFC Command Registers */ 311 status = "disabled";
306 0xfc05c000 0x00000070 /* NFC HSMC regs */
307 0x00100000 0x00100000 /* NFC SRAM banks */
308 >;
309 clocks = <&hsmc_clk>;
310 atmel,write-by-sram;
311 }; 312 };
312 }; 313 };
313 314
315 nfc_io: nfc-io@90000000 {
316 compatible = "atmel,sama5d3-nfc-io", "syscon";
317 reg = <0x90000000 0x8000000>;
318 };
319
314 apb { 320 apb {
315 compatible = "simple-bus"; 321 compatible = "simple-bus";
316 #address-cells = <1>; 322 #address-cells = <1>;
@@ -1287,6 +1293,22 @@
1287 status = "okay"; 1293 status = "okay";
1288 }; 1294 };
1289 1295
1296 hsmc: smc@fc05c000 {
1297 compatible = "atmel,sama5d3-smc", "syscon", "simple-mfd";
1298 reg = <0xfc05c000 0x1000>;
1299 interrupts = <22 IRQ_TYPE_LEVEL_HIGH 6>;
1300 clocks = <&hsmc_clk>;
1301 #address-cells = <1>;
1302 #size-cells = <1>;
1303 ranges;
1304
1305 pmecc: ecc-engine@ffffc070 {
1306 compatible = "atmel,sama5d4-pmecc";
1307 reg = <0xfc05c070 0x490>,
1308 <0xfc05c500 0x100>;
1309 };
1310 };
1311
1290 rstc@fc068600 { 1312 rstc@fc068600 {
1291 compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc"; 1313 compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc";
1292 reg = <0xfc068600 0x10>; 1314 reg = <0xfc068600 0x10>;
@@ -1447,6 +1469,113 @@
1447 }; 1469 };
1448 }; 1470 };
1449 1471
1472 ebi {
1473 pinctrl_ebi_addr: ebi-addr-0 {
1474 atmel,pins =
1475 <AT91_PIOE 0 AT91_PERIPH_A AT91_PINCTRL_NONE
1476 AT91_PIOE 1 AT91_PERIPH_A AT91_PINCTRL_NONE
1477 AT91_PIOE 2 AT91_PERIPH_A AT91_PINCTRL_NONE
1478 AT91_PIOE 3 AT91_PERIPH_A AT91_PINCTRL_NONE
1479 AT91_PIOE 4 AT91_PERIPH_A AT91_PINCTRL_NONE
1480 AT91_PIOE 5 AT91_PERIPH_A AT91_PINCTRL_NONE
1481 AT91_PIOE 6 AT91_PERIPH_A AT91_PINCTRL_NONE
1482 AT91_PIOE 7 AT91_PERIPH_A AT91_PINCTRL_NONE
1483 AT91_PIOE 8 AT91_PERIPH_A AT91_PINCTRL_NONE
1484 AT91_PIOE 9 AT91_PERIPH_A AT91_PINCTRL_NONE
1485 AT91_PIOE 10 AT91_PERIPH_A AT91_PINCTRL_NONE
1486 AT91_PIOE 11 AT91_PERIPH_A AT91_PINCTRL_NONE
1487 AT91_PIOE 12 AT91_PERIPH_A AT91_PINCTRL_NONE
1488 AT91_PIOE 13 AT91_PERIPH_A AT91_PINCTRL_NONE
1489 AT91_PIOE 14 AT91_PERIPH_A AT91_PINCTRL_NONE
1490 AT91_PIOE 15 AT91_PERIPH_A AT91_PINCTRL_NONE
1491 AT91_PIOE 16 AT91_PERIPH_A AT91_PINCTRL_NONE
1492 AT91_PIOE 17 AT91_PERIPH_A AT91_PINCTRL_NONE
1493 AT91_PIOE 18 AT91_PERIPH_A AT91_PINCTRL_NONE
1494 AT91_PIOE 19 AT91_PERIPH_A AT91_PINCTRL_NONE
1495 AT91_PIOE 20 AT91_PERIPH_A AT91_PINCTRL_NONE
1496 AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE
1497 AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE
1498 AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE
1499 AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_NONE
1500 AT91_PIOE 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1501 };
1502
1503 pinctrl_ebi_nand_addr: ebi-addr-1 {
1504 atmel,pins =
1505 <AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE
1506 AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1507 };
1508
1509 pinctrl_ebi_cs0: ebi-cs0-0 {
1510 atmel,pins =
1511 <AT91_PIOE 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1512 };
1513
1514 pinctrl_ebi_cs1: ebi-cs1-0 {
1515 atmel,pins =
1516 <AT91_PIOE 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1517 };
1518
1519 pinctrl_ebi_cs2: ebi-cs2-0 {
1520 atmel,pins =
1521 <AT91_PIOE 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1522 };
1523
1524 pinctrl_ebi_cs3: ebi-cs3-0 {
1525 atmel,pins =
1526 <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1527 };
1528
1529 pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
1530 atmel,pins =
1531 <AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE
1532 AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE
1533 AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE
1534 AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE
1535 AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE
1536 AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE
1537 AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE
1538 AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1539 };
1540
1541 pinctrl_ebi_data_8_15: ebi-data-msb-0 {
1542 atmel,pins =
1543 <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE
1544 AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE
1545 AT91_PIOB 20 AT91_PERIPH_B AT91_PINCTRL_NONE
1546 AT91_PIOB 21 AT91_PERIPH_B AT91_PINCTRL_NONE
1547 AT91_PIOB 22 AT91_PERIPH_B AT91_PINCTRL_NONE
1548 AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE
1549 AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE
1550 AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>;
1551 };
1552
1553 pinctrl_ebi_nandrdy: ebi-nandrdy-0 {
1554 atmel,pins =
1555 <AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1556 };
1557
1558 pinctrl_ebi_nrd_nandoe: ebi-nrd-nandoe-0 {
1559 atmel,pins =
1560 <AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1561 };
1562
1563 pinctrl_ebi_nwait: ebi-nwait-0 {
1564 atmel,pins =
1565 <AT91_PIOE 30 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1566 };
1567
1568 pinctrl_ebi_nwe_nandwe: ebi-nwe-nandwe-0 {
1569 atmel,pins =
1570 <AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1571 };
1572
1573 pinctrl_ebi_nwr1_nbs1: ebi-nwr1-nbs1-0 {
1574 atmel,pins =
1575 <AT91_PIOE 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
1576 };
1577 };
1578
1450 i2c0 { 1579 i2c0 {
1451 pinctrl_i2c0: i2c0-0 { 1580 pinctrl_i2c0: i2c0-0 {
1452 atmel,pins = 1581 atmel,pins =
diff --git a/arch/arm/boot/dts/tny_a9260_common.dtsi b/arch/arm/boot/dts/tny_a9260_common.dtsi
index f9dc463b9e48..5d83df4675a1 100644
--- a/arch/arm/boot/dts/tny_a9260_common.dtsi
+++ b/arch/arm/boot/dts/tny_a9260_common.dtsi
@@ -32,50 +32,69 @@
32 }; 32 };
33 }; 33 };
34 34
35 nand0: nand@40000000 { 35 ebi: ebi@10000000 {
36 nand-bus-width = <8>;
37 nand-ecc-mode = "soft";
38 nand-on-flash-bbt;
39 status = "okay"; 36 status = "okay";
40 37
41 at91bootstrap@0 { 38 nand_controller: nand-controller {
42 label = "at91bootstrap"; 39 status = "okay";
43 reg = <0x0 0x20000>; 40 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
44 }; 41 pinctrl-names = "default";
45 42
46 barebox@20000 { 43 nand@3 {
47 label = "barebox"; 44 reg = <0x3 0x0 0x800000>;
48 reg = <0x20000 0x40000>; 45 rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
49 }; 46 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
47 nand-bus-width = <8>;
48 nand-ecc-mode = "soft";
49 nand-on-flash-bbt;
50 label = "atmel_nand";
50 51
51 bareboxenv@60000 { 52 partitions {
52 label = "bareboxenv"; 53 compatible = "fixed-partitions";
53 reg = <0x60000 0x20000>; 54 #address-cells = <1>;
54 }; 55 #size-cells = <1>;
55 56
56 bareboxenv2@80000 { 57 at91bootstrap@0 {
57 label = "bareboxenv2"; 58 label = "at91bootstrap";
58 reg = <0x80000 0x20000>; 59 reg = <0x0 0x20000>;
59 }; 60 };
60 61
61 oftree@80000 { 62 barebox@20000 {
62 label = "oftree"; 63 label = "barebox";
63 reg = <0xa0000 0x20000>; 64 reg = <0x20000 0x40000>;
64 }; 65 };
65 66
66 kernel@a0000 { 67 bareboxenv@60000 {
67 label = "kernel"; 68 label = "bareboxenv";
68 reg = <0xc0000 0x400000>; 69 reg = <0x60000 0x20000>;
69 }; 70 };
70 71
71 rootfs@4a0000 { 72 bareboxenv2@80000 {
72 label = "rootfs"; 73 label = "bareboxenv2";
73 reg = <0x4c0000 0x7800000>; 74 reg = <0x80000 0x20000>;
74 }; 75 };
76
77 oftree@80000 {
78 label = "oftree";
79 reg = <0xa0000 0x20000>;
80 };
81
82 kernel@a0000 {
83 label = "kernel";
84 reg = <0xc0000 0x400000>;
85 };
86
87 rootfs@4a0000 {
88 label = "rootfs";
89 reg = <0x4c0000 0x7800000>;
90 };
75 91
76 data@7ca0000 { 92 data@7ca0000 {
77 label = "data"; 93 label = "data";
78 reg = <0x7cc0000 0x8340000>; 94 reg = <0x7cc0000 0x8340000>;
95 };
96 };
97 };
79 }; 98 };
80 }; 99 };
81 }; 100 };
diff --git a/arch/arm/boot/dts/tny_a9263.dts b/arch/arm/boot/dts/tny_a9263.dts
index 9161cd9889b4..8cf0a9e08571 100644
--- a/arch/arm/boot/dts/tny_a9263.dts
+++ b/arch/arm/boot/dts/tny_a9263.dts
@@ -42,50 +42,69 @@
42 }; 42 };
43 }; 43 };
44 44
45 nand0: nand@40000000 { 45 ebi0: ebi@10000000 {
46 nand-bus-width = <8>;
47 nand-ecc-mode = "soft";
48 nand-on-flash-bbt;
49 status = "okay"; 46 status = "okay";
50 47
51 at91bootstrap@0 { 48 nand_controller: nand-controller {
52 label = "at91bootstrap"; 49 status = "okay";
53 reg = <0x0 0x20000>; 50 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
54 }; 51 pinctrl-names = "default";
55 52
56 barebox@20000 { 53 nand@3 {
57 label = "barebox"; 54 reg = <0x3 0x0 0x800000>;
58 reg = <0x20000 0x40000>; 55 rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>;
59 }; 56 cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
60 57 nand-bus-width = <8>;
61 bareboxenv@60000 { 58 nand-ecc-mode = "soft";
62 label = "bareboxenv"; 59 nand-on-flash-bbt;
63 reg = <0x60000 0x20000>; 60 label = "atmel_nand";
64 }; 61
65 62 partitions {
66 bareboxenv2@80000 { 63 compatible = "fixed-partitions";
67 label = "bareboxenv2"; 64 #address-cells = <1>;
68 reg = <0x80000 0x20000>; 65 #size-cells = <1>;
69 }; 66
70 67 at91bootstrap@0 {
71 oftree@80000 { 68 label = "at91bootstrap";
72 label = "oftree"; 69 reg = <0x0 0x20000>;
73 reg = <0xa0000 0x20000>; 70 };
74 }; 71
75 72 barebox@20000 {
76 kernel@a0000 { 73 label = "barebox";
77 label = "kernel"; 74 reg = <0x20000 0x40000>;
78 reg = <0xc0000 0x400000>; 75 };
79 }; 76
80 77 bareboxenv@60000 {
81 rootfs@4a0000 { 78 label = "bareboxenv";
82 label = "rootfs"; 79 reg = <0x60000 0x20000>;
83 reg = <0x4c0000 0x7800000>; 80 };
84 }; 81
85 82 bareboxenv2@80000 {
86 data@7ca0000 { 83 label = "bareboxenv2";
87 label = "data"; 84 reg = <0x80000 0x20000>;
88 reg = <0x7cc0000 0x8340000>; 85 };
86
87 oftree@80000 {
88 label = "oftree";
89 reg = <0xa0000 0x20000>;
90 };
91
92 kernel@a0000 {
93 label = "kernel";
94 reg = <0xc0000 0x400000>;
95 };
96
97 rootfs@4a0000 {
98 label = "rootfs";
99 reg = <0x4c0000 0x7800000>;
100 };
101
102 data@7ca0000 {
103 label = "data";
104 reg = <0x7cc0000 0x8340000>;
105 };
106 };
107 };
89 }; 108 };
90 }; 109 };
91 }; 110 };
diff --git a/arch/arm/boot/dts/usb_a9260_common.dtsi b/arch/arm/boot/dts/usb_a9260_common.dtsi
index 7514b347cdd2..34a49995eda3 100644
--- a/arch/arm/boot/dts/usb_a9260_common.dtsi
+++ b/arch/arm/boot/dts/usb_a9260_common.dtsi
@@ -34,50 +34,69 @@
34 }; 34 };
35 }; 35 };
36 36
37 nand0: nand@40000000 { 37 ebi: ebi@10000000 {
38 nand-bus-width = <8>;
39 nand-ecc-mode = "soft";
40 nand-on-flash-bbt;
41 status = "okay"; 38 status = "okay";
42 39
43 at91bootstrap@0 { 40 nand_controller: nand-controller {
44 label = "at91bootstrap"; 41 status = "okay";
45 reg = <0x0 0x20000>; 42 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
46 }; 43 pinctrl-names = "default";
47 44
48 barebox@20000 { 45 nand@3 {
49 label = "barebox"; 46 reg = <0x3 0x0 0x800000>;
50 reg = <0x20000 0x40000>; 47 rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
51 }; 48 cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
52 49 nand-bus-width = <8>;
53 bareboxenv@60000 { 50 nand-ecc-mode = "soft";
54 label = "bareboxenv"; 51 nand-on-flash-bbt;
55 reg = <0x60000 0x20000>; 52 label = "atmel_nand";
56 }; 53
57 54 partitions {
58 bareboxenv2@80000 { 55 compatible = "fixed-partitions";
59 label = "bareboxenv2"; 56 #address-cells = <1>;
60 reg = <0x80000 0x20000>; 57 #size-cells = <1>;
61 }; 58
62 59 at91bootstrap@0 {
63 oftree@80000 { 60 label = "at91bootstrap";
64 label = "oftree"; 61 reg = <0x0 0x20000>;
65 reg = <0xa0000 0x20000>; 62 };
66 }; 63
67 64 barebox@20000 {
68 kernel@a0000 { 65 label = "barebox";
69 label = "kernel"; 66 reg = <0x20000 0x40000>;
70 reg = <0xc0000 0x400000>; 67 };
71 }; 68
72 69 bareboxenv@60000 {
73 rootfs@4a0000 { 70 label = "bareboxenv";
74 label = "rootfs"; 71 reg = <0x60000 0x20000>;
75 reg = <0x4c0000 0x7800000>; 72 };
76 }; 73
77 74 bareboxenv2@80000 {
78 data@7ca0000 { 75 label = "bareboxenv2";
79 label = "data"; 76 reg = <0x80000 0x20000>;
80 reg = <0x7cc0000 0x8340000>; 77 };
78
79 oftree@80000 {
80 label = "oftree";
81 reg = <0xa0000 0x20000>;
82 };
83
84 kernel@a0000 {
85 label = "kernel";
86 reg = <0xc0000 0x400000>;
87 };
88
89 rootfs@4a0000 {
90 label = "rootfs";
91 reg = <0x4c0000 0x7800000>;
92 };
93
94 data@7ca0000 {
95 label = "data";
96 reg = <0x7cc0000 0x8340000>;
97 };
98 };
99 };
81 }; 100 };
82 }; 101 };
83 102
diff --git a/arch/arm/boot/dts/usb_a9263.dts b/arch/arm/boot/dts/usb_a9263.dts
index bfc48a272417..482381c1c962 100644
--- a/arch/arm/boot/dts/usb_a9263.dts
+++ b/arch/arm/boot/dts/usb_a9263.dts
@@ -62,50 +62,69 @@
62 }; 62 };
63 }; 63 };
64 64
65 nand0: nand@40000000 { 65 ebi0: ebi@10000000 {
66 nand-bus-width = <8>;
67 nand-ecc-mode = "soft";
68 nand-on-flash-bbt;
69 status = "okay"; 66 status = "okay";
70 67
71 at91bootstrap@0 { 68 nand_controller: nand-controller {
72 label = "at91bootstrap"; 69 status = "okay";
73 reg = <0x0 0x20000>; 70 pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
74 }; 71 pinctrl-names = "default";
75 72
76 barebox@20000 { 73 nand@3 {
77 label = "barebox"; 74 reg = <0x3 0x0 0x800000>;
78 reg = <0x20000 0x40000>; 75 rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>;
79 }; 76 cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
80 77 nand-bus-width = <8>;
81 bareboxenv@60000 { 78 nand-ecc-mode = "soft";
82 label = "bareboxenv"; 79 nand-on-flash-bbt;
83 reg = <0x60000 0x20000>; 80 label = "atmel_nand";
84 }; 81
85 82 partitions {
86 bareboxenv2@80000 { 83 compatible = "fixed-partitions";
87 label = "bareboxenv2"; 84 #address-cells = <1>;
88 reg = <0x80000 0x20000>; 85 #size-cells = <1>;
89 }; 86
90 87 at91bootstrap@0 {
91 oftree@80000 { 88 label = "at91bootstrap";
92 label = "oftree"; 89 reg = <0x0 0x20000>;
93 reg = <0xa0000 0x20000>; 90 };
94 }; 91
95 92 barebox@20000 {
96 kernel@a0000 { 93 label = "barebox";
97 label = "kernel"; 94 reg = <0x20000 0x40000>;
98 reg = <0xc0000 0x400000>; 95 };
99 }; 96
100 97 bareboxenv@60000 {
101 rootfs@4a0000 { 98 label = "bareboxenv";
102 label = "rootfs"; 99 reg = <0x60000 0x20000>;
103 reg = <0x4c0000 0x7800000>; 100 };
104 }; 101
105 102 bareboxenv2@80000 {
106 data@7ca0000 { 103 label = "bareboxenv2";
107 label = "data"; 104 reg = <0x80000 0x20000>;
108 reg = <0x7cc0000 0x8340000>; 105 };
106
107 oftree@80000 {
108 label = "oftree";
109 reg = <0xa0000 0x20000>;
110 };
111
112 kernel@a0000 {
113 label = "kernel";
114 reg = <0xc0000 0x400000>;
115 };
116
117 rootfs@4a0000 {
118 label = "rootfs";
119 reg = <0x4c0000 0x7800000>;
120 };
121
122 data@7ca0000 {
123 label = "data";
124 reg = <0x7cc0000 0x8340000>;
125 };
126 };
127 };
109 }; 128 };
110 }; 129 };
111 130