blob: 3aec38a482db86aa0467166e1a2b039a3a96084b [file] [log] [blame]
Ilya Ledvich15be8172015-11-24 16:02:08 +02001/*
2 * am335x-cm-t335.dts - Device Tree file for Compulab CM-T335
3 *
4 * Copyright (C) 2014 - 2015 CompuLab Ltd. - http://www.compulab.co.il/
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11/dts-v1/;
12
13#include "am33xx.dtsi"
14
15/ {
16 model = "CompuLab CM-T335";
17 compatible = "compulab,cm-t335", "ti,am33xx";
18
19 memory {
20 device_type = "memory";
21 reg = <0x80000000 0x8000000>; /* 128 MB */
22 };
23
24 leds {
25 compatible = "gpio-leds";
26 pinctrl-names = "default";
27 pinctrl-0 = <&gpio_led_pins>;
28 led@0 {
29 label = "cm_t335:green";
30 gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; /* gpio2_0 */
31 linux,default-trigger = "heartbeat";
32 };
33 };
Ilya Ledvich54f0c5c2015-11-24 16:02:11 +020034
35 /* regulator for mmc */
36 vmmc_fixed: fixedregulator@0 {
37 compatible = "regulator-fixed";
38 regulator-name = "vmmc_fixed";
39 regulator-min-microvolt = <3300000>;
40 regulator-max-microvolt = <3300000>;
41 };
Ilya Ledvich15be8172015-11-24 16:02:08 +020042};
43
44&am33xx_pinmux {
45 pinctrl-names = "default";
46 pinctrl-0 = <>;
47
Ilya Ledvich43577ec2015-11-24 16:02:09 +020048 i2c0_pins: pinmux_i2c0_pins {
49 pinctrl-single,pins = <
50 /* i2c0_sda.i2c0_sda */
51 AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0)
52 /* i2c0_scl.i2c0_scl */
53 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0)
54 >;
55 };
56
57 i2c1_pins: pinmux_i2c1_pins {
58 pinctrl-single,pins = <
59 /* uart0_ctsn.i2c1_sda */
60 AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE2)
61 /* uart0_rtsn.i2c1_scl */
62 AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE2)
63 >;
64 };
65
Ilya Ledvich15be8172015-11-24 16:02:08 +020066 gpio_led_pins: pinmux_gpio_led_pins {
67 pinctrl-single,pins = <
68 /* gpmc_csn3.gpio2_0 */
69 AM33XX_IOPAD(0x888, PIN_OUTPUT | MUX_MODE7)
70 >;
71 };
72
Ilya Ledvich440c3a12015-11-24 16:02:10 +020073 nandflash_pins: pinmux_nandflash_pins {
74 pinctrl-single,pins = <
75 /* gpmc_ad0.gpmc_ad0 */
76 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0)
77 /* gpmc_ad1.gpmc_ad1 */
78 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0)
79 /* gpmc_ad2.gpmc_ad2 */
80 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0)
81 /* gpmc_ad3.gpmc_ad3 */
82 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0)
83 /* gpmc_ad4.gpmc_ad4 */
84 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0)
85 /* gpmc_ad5.gpmc_ad5 */
86 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0)
87 /* gpmc_ad6.gpmc_ad6 */
88 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0)
89 /* gpmc_ad7.gpmc_ad7 */
90 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0)
91 /* gpmc_wait0.gpmc_wait0 */
92 AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0)
93 /* gpmc_wpn.gpio0_30 */
94 AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP | MUX_MODE7)
95 /* gpmc_csn0.gpmc_csn0 */
96 AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0)
97 /* gpmc_advn_ale.gpmc_advn_ale */
98 AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0)
99 /* gpmc_oen_ren.gpmc_oen_ren */
100 AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0)
101 /* gpmc_wen.gpmc_wen */
102 AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0)
103 /* gpmc_ben0_cle.gpmc_ben0_cle */
104 AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0)
105 >;
106 };
107
Ilya Ledvich15be8172015-11-24 16:02:08 +0200108 uart0_pins: pinmux_uart0_pins {
109 pinctrl-single,pins = <
110 /* uart0_rxd.uart0_rxd */
111 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0)
112 /* uart0_txd.uart0_txd */
113 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
114 >;
115 };
Ilya Ledvich54f0c5c2015-11-24 16:02:11 +0200116
Ilya Ledvich3a8038e2015-11-24 16:02:12 +0200117 cpsw_default: cpsw_default {
118 pinctrl-single,pins = <
119 /* Slave 1 */
120 /* mii1_tx_en.rgmii1_tctl */
121 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
122 /* mii1_rxdv.rgmii1_rctl */
123 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2)
124 /* mii1_txd3.rgmii1_td3 */
125 AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
126 /* mii1_txd2.rgmii1_td2 */
127 AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
128 /* mii1_txd1.rgmii1_td1 */
129 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
130 /* mii1_txd0.rgmii1_td0 */
131 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
132 /* mii1_txclk.rgmii1_tclk */
133 AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2)
134 /* mii1_rxclk.rgmii1_rclk */
135 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2)
136 /* mii1_rxd3.rgmii1_rd3 */
137 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2)
138 /* mii1_rxd2.rgmii1_rd2 */
139 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2)
140 /* mii1_rxd1.rgmii1_rd1 */
141 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2)
142 /* mii1_rxd0.rgmii1_rd0 */
143 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2)
144 >;
145 };
146
147 cpsw_sleep: cpsw_sleep {
148 pinctrl-single,pins = <
149 /* Slave 1 reset value */
150 AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
151 AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
152 AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
153 AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
154 AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
155 AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
156 AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
157 AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
158 AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
159 AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
160 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
161 AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
162 >;
163 };
164
165 davinci_mdio_default: davinci_mdio_default {
166 pinctrl-single,pins = <
167 /* mdio_data.mdio_data */
168 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)
169 /* mdio_clk.mdio_clk */
170 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)
171 >;
172 };
173
174 davinci_mdio_sleep: davinci_mdio_sleep {
175 pinctrl-single,pins = <
176 /* MDIO reset value */
177 AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
178 AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
179 >;
180 };
181
Ilya Ledvich54f0c5c2015-11-24 16:02:11 +0200182 mmc1_pins: pinmux_mmc1_pins {
183 pinctrl-single,pins = <
184 /* mmc0_dat3.mmc0_dat3 */
185 AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)
186 /* mmc0_dat2.mmc0_dat2 */
187 AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)
188 /* mmc0_dat1.mmc0_dat1 */
189 AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)
190 /* mmc0_dat0.mmc0_dat0 */
191 AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)
192 /* mmc0_clk.mmc0_clk */
193 AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)
194 /* mmc0_cmd.mmc0_cmd */
195 AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)
196 >;
197 };
Ilya Ledvich15be8172015-11-24 16:02:08 +0200198};
199
200&uart0 {
201 pinctrl-names = "default";
202 pinctrl-0 = <&uart0_pins>;
203
204 status = "okay";
205};
Ilya Ledvich43577ec2015-11-24 16:02:09 +0200206
207&i2c0 {
208 pinctrl-names = "default";
209 pinctrl-0 = <&i2c0_pins>;
210
211 status = "okay";
212 clock-frequency = <400000>;
213 /* CM-T335 board EEPROM */
214 eeprom: 24c02@50 {
215 compatible = "atmel,24c02";
216 reg = <0x50>;
217 pagesize = <16>;
218 };
219 /* Real Time Clock */
220 ext_rtc: em3027@56 {
221 compatible = "emmicro,em3027";
222 reg = <0x56>;
223 };
224};
Ilya Ledvich440c3a12015-11-24 16:02:10 +0200225
226&gpmc {
227 status = "okay";
228 pinctrl-names = "default";
229 pinctrl-0 = <&nandflash_pins>;
230 ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */
231 nand@0,0 {
232 reg = <0 0 0>; /* CS0, offset 0 */
233 ti,nand-ecc-opt = "bch8";
234 ti,elm-id = <&elm>;
235 nand-bus-width = <8>;
236 gpmc,device-width = <1>;
237 gpmc,sync-clk-ps = <0>;
238 gpmc,cs-on-ns = <0>;
239 gpmc,cs-rd-off-ns = <44>;
240 gpmc,cs-wr-off-ns = <44>;
241 gpmc,adv-on-ns = <6>;
242 gpmc,adv-rd-off-ns = <34>;
243 gpmc,adv-wr-off-ns = <44>;
244 gpmc,we-on-ns = <0>;
245 gpmc,we-off-ns = <40>;
246 gpmc,oe-on-ns = <0>;
247 gpmc,oe-off-ns = <54>;
248 gpmc,access-ns = <64>;
249 gpmc,rd-cycle-ns = <82>;
250 gpmc,wr-cycle-ns = <82>;
251 gpmc,wait-on-read = "true";
252 gpmc,wait-on-write = "true";
253 gpmc,bus-turnaround-ns = <0>;
254 gpmc,cycle2cycle-delay-ns = <0>;
255 gpmc,clk-activation-ns = <0>;
256 gpmc,wait-monitoring-ns = <0>;
257 gpmc,wr-access-ns = <40>;
258 gpmc,wr-data-mux-bus-ns = <0>;
259 /* MTD partition table */
260 #address-cells = <1>;
261 #size-cells = <1>;
262 partition@0 {
263 label = "spl";
264 reg = <0x00000000 0x00200000>;
265 };
266 partition@1 {
267 label = "uboot";
268 reg = <0x00200000 0x00100000>;
269 };
270 partition@2 {
271 label = "uboot environment";
272 reg = <0x00300000 0x00100000>;
273 };
274 partition@3 {
275 label = "dtb";
276 reg = <0x00400000 0x00100000>;
277 };
278 partition@4 {
279 label = "splash";
280 reg = <0x00500000 0x00400000>;
281 };
282 partition@5 {
283 label = "linux";
284 reg = <0x00900000 0x00600000>;
285 };
286 partition@6 {
287 label = "rootfs";
288 reg = <0x00F00000 0>;
289 };
290 };
291};
292
293&elm {
294 status = "okay";
295};
Ilya Ledvich54f0c5c2015-11-24 16:02:11 +0200296
Ilya Ledvich3a8038e2015-11-24 16:02:12 +0200297&mac {
298 pinctrl-names = "default", "sleep";
299 pinctrl-0 = <&cpsw_default>;
300 pinctrl-1 = <&cpsw_sleep>;
301 slaves = <1>;
302 status = "okay";
303};
304
305&davinci_mdio {
306 pinctrl-names = "default", "sleep";
307 pinctrl-0 = <&davinci_mdio_default>;
308 pinctrl-1 = <&davinci_mdio_sleep>;
309 status = "okay";
310};
311
312&cpsw_emac0 {
313 phy_id = <&davinci_mdio>, <0>;
314 phy-mode = "rgmii-txid";
315};
316
Ilya Ledvich54f0c5c2015-11-24 16:02:11 +0200317&mmc1 {
318 status = "okay";
319 vmmc-supply = <&vmmc_fixed>;
320 bus-width = <4>;
321 pinctrl-names = "default";
322 pinctrl-0 = <&mmc1_pins>;
323};