hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2014 NovaTech LLC - https://www.novatechweb.com
 */
/dts-v1/;
 
#include "am33xx.dtsi"
 
/ {
   model = "NovaTech OrionLXm";
   compatible = "novatech,am335x-lxm", "ti,am33xx";
 
   cpus {
       cpu@0 {
           cpu0-supply = <&vdd1_reg>;
       };
   };
 
   memory@80000000 {
       device_type = "memory";
       reg = <0x80000000 0x20000000>; /* 512 MB */
   };
 
   /* Power supply provides a fixed 5V @2A */
   vbat: fixedregulator0 {
       compatible = "regulator-fixed";
       regulator-name = "vbat";
       regulator-min-microvolt = <5000000>;
       regulator-max-microvolt = <5000000>;
       regulator-boot-on;
   };
 
   /* Power supply provides a fixed 3.3V @3A */
   vmmcsd_fixed: fixedregulator1 {
       compatible = "regulator-fixed";
       regulator-name = "vmmcsd_fixed";
       regulator-min-microvolt = <3300000>;
       regulator-max-microvolt = <3300000>;
       regulator-boot-on;
   };
};
 
&am33xx_pinmux {
   mmc1_pins: pinmux_mmc1_pins {
       pinctrl-single,pins = <
           AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
           AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0)
           AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0)
           AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0)
           AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
           AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
       >;
   };
 
   i2c0_pins: pinmux_i2c0_pins {
       pinctrl-single,pins = <
           AM33XX_PADCONF(AM335X_PIN_I2C0_SDA, PIN_INPUT, MUX_MODE0)
           AM33XX_PADCONF(AM335X_PIN_I2C0_SCL, PIN_INPUT, MUX_MODE0)
       >;
   };
 
   cpsw_default: cpsw_default {
       pinctrl-single,pins = <
           /* Slave 1 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_int */
           AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_INPUT_PULLDOWN, MUX_MODE1)    /* rmii1_crs_dv */
           AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_INPUT_PULLDOWN, MUX_MODE1)    /* rmii1_rxer */
           AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_OUTPUT_PULLDOWN, MUX_MODE1)    /* rmii1_txen */
           AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_OUTPUT_PULLDOWN, MUX_MODE1)    /* rmii1_td1 */
           AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_OUTPUT_PULLDOWN, MUX_MODE1)    /* rmii1_td0 */
           AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLDOWN, MUX_MODE1)    /* rmii1_rd1 */
           AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLDOWN, MUX_MODE1)    /* rmii1_rd0 */
           AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE0)
 
           /* Slave 2 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT_PULLDOWN, MUX_MODE3)    /* rmii2_txen */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT_PULLDOWN, MUX_MODE3)    /* rmii2_td1 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE3)    /* rmii2_td0 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE3)    /* rmii2_rd1 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE3)    /* rmii2_rd0 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLDOWN, MUX_MODE3)    /* rmii2_crs_dv */
           AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLDOWN, MUX_MODE3)    /* rmii2_rxer */
           AM33XX_PADCONF(AM335X_PIN_GPMC_BEN1, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_int */
           AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLDOWN, MUX_MODE1)    /* rmii2_refclk */
       >;
   };
 
   cpsw_sleep: cpsw_sleep {
       pinctrl-single,pins = <
           /* Slave 1 reset value */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_int */
           AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_crs_dv */
           AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_rxer */
           AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_txen */
           AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_td1 */
           AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_td0 */
           AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_rd1 */
           AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_rd0 */
           AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii1_refclk */
 
           /* Slave 2 reset value*/
           AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_txen */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_td1 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_td0 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_rd1 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_rd0 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_crs_dv */
           AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_rxer */
           AM33XX_PADCONF(AM335X_PIN_GPMC_BEN1, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_int */
           AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLDOWN, MUX_MODE7)    /* rmii2_refclk */
       >;
   };
 
   davinci_mdio_default: davinci_mdio_default {
       pinctrl-single,pins = <
           /* MDIO */
           AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP | SLEWCTRL_FAST, MUX_MODE0)
           AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLUP, MUX_MODE0)
       >;
   };
 
   davinci_mdio_sleep: davinci_mdio_sleep {
       pinctrl-single,pins = <
           /* MDIO reset value */
           AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLDOWN, MUX_MODE7)
           AM33XX_PADCONF(AM335X_PIN_MDC, PIN_INPUT_PULLDOWN, MUX_MODE7)
       >;
   };
 
   emmc_pins: pinmux_emmc_pins {
       pinctrl-single,pins = <
           AM33XX_PADCONF(AM335X_PIN_GPMC_CSN1, PIN_INPUT_PULLUP, MUX_MODE2) /* gpmc_csn1.mmc1_clk */
           AM33XX_PADCONF(AM335X_PIN_GPMC_CSN2, PIN_INPUT_PULLUP, MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
           AM33XX_PADCONF(AM335X_PIN_GPMC_AD0, PIN_INPUT_PULLUP, MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_AD1, PIN_INPUT_PULLUP, MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_AD2, PIN_INPUT_PULLUP, MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_AD3, PIN_INPUT_PULLUP, MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_AD4, PIN_INPUT_PULLUP, MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_AD5, PIN_INPUT_PULLUP, MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_AD6, PIN_INPUT_PULLUP, MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
           AM33XX_PADCONF(AM335X_PIN_GPMC_AD7, PIN_INPUT_PULLUP, MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
       >;
   };
 
   uart0_pins: pinmux_uart0_pins {
       pinctrl-single,pins = <
           AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
           AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
       >;
   };
};
 
&i2c0 {
   pinctrl-names = "default";
   pinctrl-0 = <&i2c0_pins>;
 
   status = "okay";
   clock-frequency = <400000>;
 
   serial_config1: serial_config1@20 {
       compatible = "nxp,pca9539";
       reg = <0x20>;
       gpio-controller;
       #gpio-cells = <2>;
   };
 
   serial_config2: serial_config2@21 {
       compatible = "nxp,pca9539";
       reg = <0x21>;
       gpio-controller;
       #gpio-cells = <2>;
   };
 
   tps: tps@2d {
       compatible = "ti,tps65910";
       reg = <0x2d>;
   };
};
 
/include/ "tps65910.dtsi"
 
&tps {
   vcc1-supply = <&vbat>;
   vcc2-supply = <&vbat>;
   vcc3-supply = <&vbat>;
   vcc4-supply = <&vbat>;
   vcc5-supply = <&vbat>;
   vcc6-supply = <&vbat>;
   vcc7-supply = <&vbat>;
   vccio-supply = <&vbat>;
 
   regulators {
       /* vrtc - unused */
 
       vio_reg: regulator@1 {
           regulator-name = "vio_1v5,ddr";
           regulator-min-microvolt = <1500000>;
           regulator-max-microvolt = <1500000>;
           regulator-boot-on;
           regulator-always-on;
       };
 
       vdd1_reg: regulator@2 {
           regulator-name = "vdd1,mpu";
           regulator-min-microvolt = <600000>;
           regulator-max-microvolt = <1500000>;
           regulator-boot-on;
           regulator-always-on;
       };
 
       vdd2_reg: regulator@3 {
           regulator-name = "vdd2_1v1,core";
           regulator-min-microvolt = <1100000>;
           regulator-max-microvolt = <1100000>;
           regulator-boot-on;
           regulator-always-on;
       };
 
       /* vdd3 - unused */
 
       /* vdig1 - unused */
 
       vdig2_reg: regulator@6 {
           regulator-name = "vdig2_1v8,vdds_pll";
           regulator-min-microvolt = <1800000>;
           regulator-max-microvolt = <1800000>;
           regulator-boot-on;
           regulator-always-on;
       };
 
       /* vpll - unused */
 
       vdac_reg: regulator@8 {
           regulator-name = "vdac_1v8,vdds";
           regulator-min-microvolt = <1800000>;
           regulator-max-microvolt = <1800000>;
           regulator-boot-on;
           regulator-always-on;
       };
 
       vaux1_reg: regulator@9 {
           regulator-name = "vaux1_1v8,usb";
           regulator-min-microvolt = <1800000>;
           regulator-max-microvolt = <1800000>;
           regulator-boot-on;
           regulator-always-on;
       };
 
       vaux2_reg: regulator@10 {
           regulator-name = "vaux2_3v3,io";
           regulator-min-microvolt = <3300000>;
           regulator-max-microvolt = <3300000>;
           regulator-boot-on;
           regulator-always-on;
       };
 
       vaux33_reg: regulator@11 {
           regulator-name = "vaux33_3v3,usb";
           regulator-min-microvolt = <3300000>;
           regulator-max-microvolt = <3300000>;
           regulator-boot-on;
           regulator-always-on;
       };
 
       vmmc_reg: regulator@12 {
           regulator-name = "vmmc_3v3,io";
           regulator-min-microvolt = <3300000>;
           regulator-max-microvolt = <3300000>;
           regulator-boot-on;
           regulator-always-on;
       };
   };
};
 
&sham {
   status = "okay";
};
 
&aes {
   status = "okay";
};
 
&uart0 {
   pinctrl-names = "default";
   pinctrl-0 = <&uart0_pins>;
 
   status = "okay";
};
 
&usb0 {
   dr_mode = "host";
};
 
&usb1 {
   dr_mode = "host";
};
 
&cpsw_emac0 {
   phy-handle = <&ethphy0>;
   phy-mode = "rmii";
   dual_emac_res_vlan = <2>;
};
 
&cpsw_emac1 {
   phy-handle = <&ethphy1>;
   phy-mode = "rmii";
   dual_emac_res_vlan = <3>;
};
 
&mac {
   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&cpsw_default>;
   pinctrl-1 = <&cpsw_sleep>;
   dual_emac = <1>;
   status = "okay";
};
 
&davinci_mdio {
   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&davinci_mdio_default>;
   pinctrl-1 = <&davinci_mdio_sleep>;
   status = "okay";
 
   ethphy0: ethernet-phy@5 {
       reg = <5>;
   };
 
   ethphy1: ethernet-phy@4 {
       reg = <4>;
   };
};
 
&mmc1 {
   pinctrl-names = "default";
   pinctrl-0 = <&mmc1_pins>;
   vmmc-supply = <&vmmcsd_fixed>;
   bus-width = <4>;
   status = "okay";
};
 
&mmc2 {
   pinctrl-names = "default";
   pinctrl-0 = <&emmc_pins>;
   vmmc-supply = <&vmmcsd_fixed>;
   bus-width = <8>;
   non-removable;
   status = "okay";
};