Loading...
1/*
2 * Device Tree Source for am3517 SoC
3 *
4 * Copyright (C) 2013 Texas Instruments Incorporated - https://www.ti.com/
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11#include "omap3.dtsi"
12
13/* AM3517 doesn't appear to have the crypto engines defined in omap3.dtsi */
14/delete-node/ &aes1_target;
15/delete-node/ &aes2_target;
16
17/ {
18 aliases {
19 serial3 = &uart4;
20 can = &hecc;
21 };
22
23 cpus {
24 cpu: cpu@0 {
25 /* Based on OMAP3630 variants OPP50 and OPP100 */
26 operating-points-v2 = <&cpu0_opp_table>;
27
28 clock-latency = <300000>; /* From legacy driver */
29 };
30 };
31
32 cpu0_opp_table: opp-table {
33 compatible = "operating-points-v2-ti-cpu";
34 syscon = <&scm_conf>;
35 /*
36 * AM3517 TRM only lists 600MHz @ 1.2V, but omap36xx
37 * appear to operate at 300MHz as well. Since AM3517 only
38 * lists one operating voltage, it will remain fixed at 1.2V
39 */
40 opp50-300000000 {
41 opp-hz = /bits/ 64 <300000000>;
42 opp-microvolt = <1200000>;
43 opp-supported-hw = <0xffffffff 0xffffffff>;
44 opp-suspend;
45 };
46
47 opp100-600000000 {
48 opp-hz = /bits/ 64 <600000000>;
49 opp-microvolt = <1200000>;
50 opp-supported-hw = <0xffffffff 0xffffffff>;
51 };
52 };
53
54 ocp@68000000 {
55 am35x_otg_hs: am35x_otg_hs@5c040000 {
56 compatible = "ti,omap3-musb";
57 ti,hwmods = "am35x_otg_hs";
58 status = "disabled";
59 reg = <0x5c040000 0x1000>;
60 interrupts = <71>;
61 interrupt-names = "mc";
62 };
63
64 davinci_emac: ethernet@5c000000 {
65 compatible = "ti,am3517-emac";
66 ti,hwmods = "davinci_emac";
67 status = "disabled";
68 reg = <0x5c000000 0x30000>;
69 interrupts = <67 68 69 70>;
70 syscon = <&scm_conf>;
71 ti,davinci-ctrl-reg-offset = <0x10000>;
72 ti,davinci-ctrl-mod-reg-offset = <0>;
73 ti,davinci-ctrl-ram-offset = <0x20000>;
74 ti,davinci-ctrl-ram-size = <0x2000>;
75 ti,davinci-rmii-en = /bits/ 8 <1>;
76 local-mac-address = [ 00 00 00 00 00 00 ];
77 clocks = <&emac_ick>;
78 clock-names = "ick";
79 };
80
81 davinci_mdio: mdio@5c030000 {
82 compatible = "ti,davinci_mdio";
83 ti,hwmods = "davinci_mdio";
84 status = "disabled";
85 reg = <0x5c030000 0x1000>;
86 bus_freq = <1000000>;
87 #address-cells = <1>;
88 #size-cells = <0>;
89 clocks = <&emac_fck>;
90 clock-names = "fck";
91 };
92
93 uart4: serial@4809e000 {
94 compatible = "ti,omap3-uart";
95 ti,hwmods = "uart4";
96 status = "disabled";
97 reg = <0x4809e000 0x400>;
98 interrupts = <84>;
99 dmas = <&sdma 55 &sdma 54>;
100 dma-names = "tx", "rx";
101 clock-frequency = <48000000>;
102 };
103
104 omap3_pmx_core2: pinmux@480025d8 {
105 compatible = "ti,omap3-padconf", "pinctrl-single";
106 reg = <0x480025d8 0x24>;
107 #address-cells = <1>;
108 #size-cells = <0>;
109 #pinctrl-cells = <1>;
110 #interrupt-cells = <1>;
111 interrupt-controller;
112 pinctrl-single,register-width = <16>;
113 pinctrl-single,function-mask = <0xff1f>;
114 };
115
116 hecc: can@5c050000 {
117 compatible = "ti,am3517-hecc";
118 status = "disabled";
119 reg = <0x5c050000 0x80>,
120 <0x5c053000 0x180>,
121 <0x5c052000 0x200>;
122 reg-names = "hecc", "hecc-ram", "mbx";
123 interrupts = <24>;
124 clocks = <&hecc_ck>;
125 };
126
127 /*
128 * On am3517 the OCP registers do not seem to be accessible
129 * similar to the omap34xx. Maybe SGX is permanently set to
130 * "OCP bypass mode", or maybe there is OCP_SYSCONFIG that is
131 * write-only at 0x50000e10. We detect SGX based on the SGX
132 * revision register instead of the unreadable OCP revision
133 * register.
134 */
135 sgx_module: target-module@50000000 {
136 compatible = "ti,sysc-omap2", "ti,sysc";
137 reg = <0x50000014 0x4>;
138 reg-names = "rev";
139 clocks = <&sgx_fck>, <&sgx_ick>;
140 clock-names = "fck", "ick";
141 #address-cells = <1>;
142 #size-cells = <1>;
143 ranges = <0 0x50000000 0x4000>;
144
145 /*
146 * Closed source PowerVR driver, no child device
147 * binding or driver in mainline
148 */
149 };
150 };
151};
152
153/* Not currently working, probably needs at least different clocks */
154&rng_target {
155 status = "disabled";
156 /delete-property/ clocks;
157};
158
159/* Table Table 5-79 of the TRM shows 480ab000 is reserved */
160&usb_otg_hs {
161 status = "disabled";
162};
163
164&iva {
165 status = "disabled";
166};
167
168&mailbox {
169 status = "disabled";
170};
171
172&mmu_isp {
173 status = "disabled";
174};
175
176#include "am35xx-clocks.dtsi"
177#include "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
178
179/* Preferred always-on timer for clocksource */
180&timer1_target {
181 ti,no-reset-on-init;
182 ti,no-idle;
183 timer@0 {
184 assigned-clocks = <&gpt1_fck>;
185 assigned-clock-parents = <&sys_ck>;
186 };
187};
188
189/* Preferred timer for clockevent */
190&timer2_target {
191 ti,no-reset-on-init;
192 ti,no-idle;
193 timer@0 {
194 assigned-clocks = <&gpt2_fck>;
195 assigned-clock-parents = <&sys_ck>;
196 };
197};
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Device Tree Source for am3517 SoC
4 *
5 * Copyright (C) 2013 Texas Instruments Incorporated - https://www.ti.com/
6 */
7
8#include "omap3.dtsi"
9
10/* AM3517 doesn't appear to have the crypto engines defined in omap3.dtsi */
11/delete-node/ &aes1_target;
12/delete-node/ &aes2_target;
13
14/ {
15 aliases {
16 serial3 = &uart4;
17 can = &hecc;
18 };
19
20 cpus {
21 cpu: cpu@0 {
22 /* Based on OMAP3630 variants OPP50 and OPP100 */
23 operating-points-v2 = <&cpu0_opp_table>;
24
25 clock-latency = <300000>; /* From legacy driver */
26 };
27 };
28
29 cpu0_opp_table: opp-table {
30 compatible = "operating-points-v2-ti-cpu";
31 syscon = <&scm_conf>;
32 /*
33 * AM3517 TRM only lists 600MHz @ 1.2V, but omap36xx
34 * appear to operate at 300MHz as well. Since AM3517 only
35 * lists one operating voltage, it will remain fixed at 1.2V
36 */
37 opp50-300000000 {
38 opp-hz = /bits/ 64 <300000000>;
39 opp-microvolt = <1200000>;
40 opp-supported-hw = <0xffffffff 0xffffffff>;
41 opp-suspend;
42 };
43
44 opp100-600000000 {
45 opp-hz = /bits/ 64 <600000000>;
46 opp-microvolt = <1200000>;
47 opp-supported-hw = <0xffffffff 0xffffffff>;
48 };
49 };
50
51 ocp@68000000 {
52 target-module@5c040000 {
53 compatible = "ti,sysc-omap2", "ti,sysc";
54 reg = <0x5c040400 0x4>,
55 <0x5c040404 0x4>,
56 <0x5c040408 0x4>;
57 reg-names = "rev", "sysc", "syss";
58 ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP |
59 SYSC_OMAP2_SOFTRESET |
60 SYSC_OMAP2_AUTOIDLE)>;
61 ti,sysc-midle = <SYSC_IDLE_FORCE>,
62 <SYSC_IDLE_NO>,
63 <SYSC_IDLE_SMART>;
64 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
65 <SYSC_IDLE_NO>,
66 <SYSC_IDLE_SMART>;
67 ti,syss-mask = <1>;
68 clocks = <&hsotgusb_ick_am35xx>;
69 clock-names = "fck";
70 #address-cells = <1>;
71 #size-cells = <1>;
72 ranges = <0x0 0x5c040000 0x1000>;
73
74 am35x_otg_hs: am35x_otg_hs@0 {
75 compatible = "ti,omap3-musb";
76 status = "disabled";
77 reg = <0 0x1000>;
78 interrupts = <71>;
79 interrupt-names = "mc";
80 };
81 };
82
83 davinci_emac: ethernet@5c000000 {
84 compatible = "ti,am3517-emac";
85 ti,hwmods = "davinci_emac";
86 status = "disabled";
87 reg = <0x5c000000 0x30000>;
88 interrupts = <67 68 69 70>;
89 syscon = <&scm_conf>;
90 ti,davinci-ctrl-reg-offset = <0x10000>;
91 ti,davinci-ctrl-mod-reg-offset = <0>;
92 ti,davinci-ctrl-ram-offset = <0x20000>;
93 ti,davinci-ctrl-ram-size = <0x2000>;
94 ti,davinci-rmii-en = /bits/ 8 <1>;
95 local-mac-address = [ 00 00 00 00 00 00 ];
96 clocks = <&emac_ick>;
97 clock-names = "ick";
98 };
99
100 davinci_mdio: mdio@5c030000 {
101 compatible = "ti,davinci_mdio";
102 ti,hwmods = "davinci_mdio";
103 status = "disabled";
104 reg = <0x5c030000 0x1000>;
105 bus_freq = <1000000>;
106 #address-cells = <1>;
107 #size-cells = <0>;
108 clocks = <&emac_fck>;
109 clock-names = "fck";
110 };
111
112 uart4: serial@4809e000 {
113 compatible = "ti,omap3-uart";
114 ti,hwmods = "uart4";
115 status = "disabled";
116 reg = <0x4809e000 0x400>;
117 interrupts = <84>;
118 dmas = <&sdma 55 &sdma 54>;
119 dma-names = "tx", "rx";
120 clock-frequency = <48000000>;
121 };
122
123 omap3_pmx_core2: pinmux@480025d8 {
124 compatible = "ti,omap3-padconf", "pinctrl-single";
125 reg = <0x480025d8 0x24>;
126 #address-cells = <1>;
127 #size-cells = <0>;
128 #pinctrl-cells = <1>;
129 #interrupt-cells = <1>;
130 interrupt-controller;
131 pinctrl-single,register-width = <16>;
132 pinctrl-single,function-mask = <0xff1f>;
133 };
134
135 hecc: can@5c050000 {
136 compatible = "ti,am3517-hecc";
137 status = "disabled";
138 reg = <0x5c050000 0x80>,
139 <0x5c053000 0x180>,
140 <0x5c052000 0x200>;
141 reg-names = "hecc", "hecc-ram", "mbx";
142 interrupts = <24>;
143 clocks = <&hecc_ck>;
144 };
145
146 /*
147 * On am3517 the OCP registers do not seem to be accessible
148 * similar to the omap34xx. Maybe SGX is permanently set to
149 * "OCP bypass mode", or maybe there is OCP_SYSCONFIG that is
150 * write-only at 0x50000e10. We detect SGX based on the SGX
151 * revision register instead of the unreadable OCP revision
152 * register.
153 */
154 sgx_module: target-module@50000000 {
155 compatible = "ti,sysc-omap2", "ti,sysc";
156 reg = <0x50000014 0x4>;
157 reg-names = "rev";
158 clocks = <&sgx_fck>, <&sgx_ick>;
159 clock-names = "fck", "ick";
160 #address-cells = <1>;
161 #size-cells = <1>;
162 ranges = <0 0x50000000 0x4000>;
163
164 /*
165 * Closed source PowerVR driver, no child device
166 * binding or driver in mainline
167 */
168 };
169 };
170};
171
172/* Not currently working, probably needs at least different clocks */
173&rng_target {
174 status = "disabled";
175 /delete-property/ clocks;
176};
177
178/* Table Table 5-79 of the TRM shows 480ab000 is reserved */
179&usb_otg_target {
180 status = "disabled";
181};
182
183&iva {
184 status = "disabled";
185};
186
187&mailbox {
188 status = "disabled";
189};
190
191&mmu_isp {
192 status = "disabled";
193};
194
195#include "am35xx-clocks.dtsi"
196#include "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
197
198/* Preferred always-on timer for clocksource */
199&timer1_target {
200 ti,no-reset-on-init;
201 ti,no-idle;
202 timer@0 {
203 assigned-clocks = <&gpt1_fck>;
204 assigned-clock-parents = <&sys_ck>;
205 };
206};
207
208/* Preferred timer for clockevent */
209&timer2_target {
210 ti,no-reset-on-init;
211 ti,no-idle;
212 timer@0 {
213 assigned-clocks = <&gpt2_fck>;
214 assigned-clock-parents = <&sys_ck>;
215 };
216};