]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/am335x-phycore-som.dtsi
Merge remote-tracking branch 'powerpc/next'
[karo-tx-linux.git] / arch / arm / boot / dts / am335x-phycore-som.dtsi
1 /*
2  * Copyright (C) 2015 Phytec Messtechnik GmbH
3  * Author: Teresa Remmet <t.remmet@phytec.de>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  */
9
10 #include "am33xx.dtsi"
11
12 / {
13         model = "Phytec AM335x phyCORE";
14         compatible = "phytec,am335x-phycore-som", "ti,am33xx";
15
16         aliases {
17                 rtc0 = &i2c_rtc;
18                 rtc1 = &rtc;
19         };
20
21         cpus {
22                 cpu@0 {
23                         cpu0-supply = <&vdd1_reg>;
24                 };
25         };
26
27         memory {
28                 device_type = "memory";
29                 reg = <0x80000000 0x10000000>; /* 256 MB */
30         };
31
32         regulators {
33                 compatible = "simple-bus";
34
35                 vcc5v: fixedregulator@0 {
36                         compatible = "regulator-fixed";
37                         regulator-name = "vcc5v";
38                         regulator-min-microvolt = <5000000>;
39                         regulator-max-microvolt = <5000000>;
40                         regulator-boot-on;
41                         regulator-always-on;
42                 };
43         };
44 };
45
46 /* Crypto Module */
47 &aes {
48         status = "okay";
49 };
50
51 &sham {
52         status = "okay";
53 };
54
55 /* Ethernet */
56 &am33xx_pinmux {
57         ethernet0_pins: pinmux_ethernet0 {
58                 pinctrl-single,pins = <
59                         0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_crs.rmii1_crs_dv */
60                         0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_rxerr.rmii1_rxerr */
61                         0x114 (PIN_OUTPUT | MUX_MODE1)          /* mii1_txen.rmii1_txen */
62                         0x124 (PIN_OUTPUT | MUX_MODE1)          /* mii1_txd1.rmii1_txd1 */
63                         0x128 (PIN_OUTPUT | MUX_MODE1)          /* mii1_txd0.rmii1_txd0 */
64                         0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_rxd1.rmii1_rxd1 */
65                         0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_rxd0.rmii1_rxd0 */
66                         0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* rmii1_refclk.rmii1_refclk */
67                 >;
68         };
69
70         mdio_pins: pinmux_mdio {
71                 pinctrl-single,pins = <
72                         /* MDIO */
73                         0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)    /* mdio_data.mdio_data */
74                         0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)                   /* mdio_clk.mdio_clk */
75                 >;
76         };
77 };
78
79 &cpsw_emac0 {
80         phy_id = <&davinci_mdio>, <0>;
81         phy-mode = "rmii";
82         dual_emac_res_vlan = <1>;
83 };
84
85 &davinci_mdio {
86         pinctrl-names = "default";
87         pinctrl-0 = <&mdio_pins>;
88         status = "okay";
89 };
90
91 &mac {
92         slaves = <1>;
93         pinctrl-names = "default";
94         pinctrl-0 = <&ethernet0_pins>;
95         status = "okay";
96 };
97
98 &phy_sel {
99         rmii-clock-ext;
100 };
101
102 /* I2C Busses */
103 &am33xx_pinmux {
104         i2c0_pins: pinmux_i2c0 {
105                 pinctrl-single,pins = <
106                         0x188 (PIN_INPUT | MUX_MODE0)   /* i2c0_sda.i2c0_sda */
107                         0x18c (PIN_INPUT | MUX_MODE0)   /* i2c0_scl.i2c0_scl */
108                 >;
109         };
110 };
111
112 &i2c0 {
113         pinctrl-names = "default";
114         pinctrl-0 = <&i2c0_pins>;
115         clock-frequency = <400000>;
116         status = "okay";
117
118         tps: pmic@2d {
119                 reg = <0x2d>;
120         };
121
122         i2c_eeprom: eeprom@52 {
123                 compatible = "atmel,24c32";
124                 pagesize = <32>;
125                 reg = <0x52>;
126                 status = "disabled";
127         };
128
129         i2c_rtc: rtc@68 {
130                 compatible = "rv4162";
131                 reg = <0x68>;
132                 status = "disabled";
133         };
134 };
135
136 /* NAND memory */
137 &am33xx_pinmux {
138                 nandflash_pins: pinmux_nandflash {
139                         pinctrl-single,pins = <
140                         0x0 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad0.gpmc_ad0 */
141                         0x4 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad1.gpmc_ad1 */
142                         0x8 (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad2.gpmc_ad2 */
143                         0xc (PIN_INPUT_PULLUP | MUX_MODE0)      /* gpmc_ad3.gpmc_ad3 */
144                         0x10 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad4.gpmc_ad4 */
145                         0x14 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad5.gpmc_ad5 */
146                         0x18 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad6.gpmc_ad6 */
147                         0x1c (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_ad7.gpmc_ad7 */
148                         0x70 (PIN_INPUT_PULLUP | MUX_MODE0)     /* gpmc_wait0.gpmc_wait0 */
149                         0x7c (PIN_OUTPUT | MUX_MODE0)           /* gpmc_csn0.gpmc_csn0 */
150                         0x90 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_advn_ale.gpmc_advn_ale */
151                         0x94 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_oen_ren.gpmc_oen_ren */
152                         0x98 (PIN_OUTPUT | MUX_MODE0)           /* gpmc_wen.gpmc_wen */
153                         0x9c (PIN_OUTPUT | MUX_MODE0)           /* gpmc_be0n_cle.gpmc_be0n_cle */
154                 >;
155         };
156 };
157
158 &elm {
159         status = "okay";
160 };
161
162 &gpmc {
163         status = "okay";
164         pinctrl-names = "default";
165         pinctrl-0 = <&nandflash_pins>;
166         ranges = <0 0 0x08000000 0x1000000>;   /* CS0: NAND */
167         nandflash: nand@0,0 {
168                 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
169                 nand-bus-width = <8>;
170                 ti,nand-ecc-opt = "bch8";
171                 gpmc,device-nand = "true";
172                 gpmc,device-width = <1>;
173                 gpmc,sync-clk-ps = <0>;
174                 gpmc,cs-on-ns = <0>;
175                 gpmc,cs-rd-off-ns = <30>;
176                 gpmc,cs-wr-off-ns = <30>;
177                 gpmc,adv-on-ns = <0>;
178                 gpmc,adv-rd-off-ns = <30>;
179                 gpmc,adv-wr-off-ns = <30>;
180                 gpmc,we-on-ns = <0>;
181                 gpmc,we-off-ns = <20>;
182                 gpmc,oe-on-ns = <10>;
183                 gpmc,oe-off-ns = <30>;
184                 gpmc,access-ns = <30>;
185                 gpmc,rd-cycle-ns = <30>;
186                 gpmc,wr-cycle-ns = <30>;
187                 gpmc,wait-on-read = "true";
188                 gpmc,wait-on-write = "true";
189                 gpmc,bus-turnaround-ns = <0>;
190                 gpmc,cycle2cycle-delay-ns = <50>;
191                 gpmc,cycle2cycle-diffcsen;
192                 gpmc,clk-activation-ns = <0>;
193                 gpmc,wait-monitoring-ns = <0>;
194                 gpmc,wr-access-ns = <30>;
195                 gpmc,wr-data-mux-bus-ns = <0>;
196
197                 elm_id = <&elm>;
198
199                 #address-cells = <1>;
200                 #size-cells = <1>;
201
202                 partition@0 {
203                         label = "xload";
204                         reg = <0x0 0x20000>;
205                 };
206                 partition@1 {
207                         label = "xload_backup1";
208                         reg = <0x20000 0x20000>;
209                 };
210                 partition@2 {
211                         label = "xload_backup2";
212                         reg = <0x40000 0x20000>;
213                 };
214                 partition@3 {
215                         label = "xload_backup3";
216                         reg = <0x60000 0x20000>;
217                 };
218                 partition@4 {
219                         label = "barebox";
220                         reg = <0x80000 0x80000>;
221                 };
222                 partition@5 {
223                         label = "bareboxenv";
224                         reg = <0x100000 0x40000>;
225                 };
226                 partition@6 {
227                         label = "oftree";
228                         reg = <0x140000 0x40000>;
229                 };
230                 partition@7 {
231                         label = "kernel";
232                         reg = <0x180000 0x800000>;
233                 };
234                 partition@8 {
235                         label = "root";
236                         reg = <0x980000 0x0>;
237                 };
238         };
239 };
240
241 /* Power */
242 #include "tps65910.dtsi"
243
244 &tps {
245         vcc1-supply = <&vcc5v>;
246         vcc2-supply = <&vcc5v>;
247         vcc3-supply = <&vcc5v>;
248         vcc4-supply = <&vcc5v>;
249         vcc5-supply = <&vcc5v>;
250         vcc6-supply = <&vcc5v>;
251         vcc7-supply = <&vcc5v>;
252         vccio-supply = <&vcc5v>;
253
254         regulators {
255                 vrtc_reg: regulator@0 {
256                         regulator-always-on;
257                 };
258
259                 vio_reg: regulator@1 {
260                         regulator-always-on;
261                 };
262
263                 vdd1_reg: regulator@2 {
264                         /* VDD_MPU voltage limits 0.95V - 1.325V with +/-4% tolerance */
265                         regulator-name = "vdd_mpu";
266                         regulator-min-microvolt = <912500>;
267                         regulator-max-microvolt = <1378000>;
268                         regulator-boot-on;
269                         regulator-always-on;
270                 };
271
272                 vdd2_reg: regulator@3 {
273                         /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
274                         regulator-name = "vdd_core";
275                         regulator-min-microvolt = <912500>;
276                         regulator-max-microvolt = <1150000>;
277                         regulator-boot-on;
278                         regulator-always-on;
279                 };
280
281                 vdd3_reg: regulator@4 {
282                         regulator-always-on;
283                 };
284
285                 vdig1_reg: regulator@5 {
286                         regulator-name = "vdig1_1p8v";
287                         regulator-min-microvolt = <1800000>;
288                         regulator-max-microvolt = <1800000>;
289                 };
290
291                 vdig2_reg: regulator@6 {
292                         regulator-always-on;
293                 };
294
295                 vpll_reg: regulator@7 {
296                         regulator-always-on;
297                 };
298
299                 vdac_reg: regulator@8 {
300                         regulator-always-on;
301                 };
302
303                 vaux1_reg: regulator@9 {
304                         regulator-always-on;
305                 };
306
307                 vaux2_reg: regulator@10 {
308                         regulator-always-on;
309                 };
310
311                 vaux33_reg: regulator@11 {
312                         regulator-always-on;
313                 };
314
315                 vmmc_reg: regulator@12 {
316                         regulator-min-microvolt = <3300000>;
317                         regulator-max-microvolt = <3300000>;
318                         regulator-always-on;
319                 };
320         };
321 };
322
323 /* SPI Busses */
324 &am33xx_pinmux {
325         spi0_pins: pinmux_spi0 {
326                 pinctrl-single,pins = <
327                         0x150 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* spi0_clk.spi0_clk */
328                         0x154 (PIN_INPUT_PULLDOWN | MUX_MODE0)  /* spi0_d0.spi0_d0 */
329                         0x158 (PIN_INPUT_PULLUP | MUX_MODE0)    /* spi0_d1.spi0_d1 */
330                         0x15c (PIN_INPUT_PULLUP | MUX_MODE0)    /* spi0_cs0.spi0_cs0 */
331                 >;
332         };
333 };
334
335 &spi0 {
336         pinctrl-names = "default";
337         pinctrl-0 = <&spi0_pins>;
338         status = "okay";
339
340         serial_flash: m25p80@0 {
341                 compatible = "m25p80";
342                 spi-max-frequency = <48000000>;
343                 reg = <0x0>;
344                 m25p,fast-read;
345                 status = "disabled";
346                 #address-cells = <1>;
347                 #size-cells = <1>;
348
349                 partition@0 {
350                         label = "xload";
351                         reg = <0x0 0x20000>;
352                 };
353                 partition@1 {
354                         label = "barebox";
355                         reg = <0x20000 0x80000>;
356                 };
357                 partition@2 {
358                         label = "bareboxenv";
359                         reg = <0xa0000 0x20000>;
360                 };
361                 partition@3 {
362                         label = "oftree";
363                         reg = <0xc0000 0x20000>;
364                 };
365                 partition@4 {
366                         label = "kernel";
367                         reg = <0xe0000 0x0>;
368                 };
369         };
370 };