Loading...
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Device Tree Source for OMAP3 SoC
4 *
5 * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
6 */
7
8#include <dt-bindings/bus/ti-sysc.h>
9#include <dt-bindings/media/omap3-isp.h>
10
11#include "omap3.dtsi"
12
13/ {
14 aliases {
15 serial3 = &uart4;
16 };
17
18 cpus {
19 /* OMAP3630/OMAP37xx variants OPP50 to OPP130 and OPP1G */
20 cpu: cpu@0 {
21 operating-points-v2 = <&cpu0_opp_table>;
22
23 vbb-supply = <&abb_mpu_iva>;
24 clock-latency = <300000>; /* From omap-cpufreq driver */
25 #cooling-cells = <2>;
26 };
27 };
28
29 cpu0_opp_table: opp-table {
30 compatible = "operating-points-v2-ti-cpu";
31 syscon = <&scm_conf>;
32
33 opp50-300000000 {
34 opp-hz = /bits/ 64 <300000000>;
35 /*
36 * we currently only select the max voltage from table
37 * Table 4-19 of the DM3730 Data sheet (SPRS685B)
38 * Format is: cpu0-supply: <target min max>
39 * vbb-supply: <target min max>
40 */
41 opp-microvolt = <1012500 1012500 1012500>,
42 <1012500 1012500 1012500>;
43 /*
44 * first value is silicon revision bit mask
45 * second one is "speed binned" bit mask
46 */
47 opp-supported-hw = <0xffffffff 3>;
48 opp-suspend;
49 };
50
51 opp100-600000000 {
52 opp-hz = /bits/ 64 <600000000>;
53 opp-microvolt = <1200000 1200000 1200000>,
54 <1200000 1200000 1200000>;
55 opp-supported-hw = <0xffffffff 3>;
56 };
57
58 opp130-800000000 {
59 opp-hz = /bits/ 64 <800000000>;
60 opp-microvolt = <1325000 1325000 1325000>,
61 <1325000 1325000 1325000>;
62 opp-supported-hw = <0xffffffff 3>;
63 };
64
65 opp1g-1000000000 {
66 opp-hz = /bits/ 64 <1000000000>;
67 opp-microvolt = <1375000 1375000 1375000>,
68 <1375000 1375000 1375000>;
69 /* only on am/dm37x with speed-binned bit set */
70 opp-supported-hw = <0xffffffff 2>;
71 };
72 };
73
74 opp_supply_mpu_iva: opp_supply {
75 compatible = "ti,omap-opp-supply";
76 ti,absolute-max-voltage-uv = <1375000>;
77 };
78
79 ocp@68000000 {
80 uart4: serial@49042000 {
81 compatible = "ti,omap3-uart";
82 reg = <0x49042000 0x400>;
83 interrupts = <80>;
84 dmas = <&sdma 81 &sdma 82>;
85 dma-names = "tx", "rx";
86 ti,hwmods = "uart4";
87 clock-frequency = <48000000>;
88 };
89
90 abb_mpu_iva: regulator-abb-mpu {
91 compatible = "ti,abb-v1";
92 regulator-name = "abb_mpu_iva";
93 #address-cells = <0>;
94 #size-cells = <0>;
95 reg = <0x483072f0 0x8>, <0x48306818 0x4>;
96 reg-names = "base-address", "int-address";
97 ti,tranxdone-status-mask = <0x4000000>;
98 clocks = <&sys_ck>;
99 ti,settling-time = <30>;
100 ti,clock-cycles = <8>;
101 ti,abb_info = <
102 /*uV ABB efuse rbb_m fbb_m vset_m*/
103 1012500 0 0 0 0 0
104 1200000 0 0 0 0 0
105 1325000 0 0 0 0 0
106 1375000 1 0 0 0 0
107 >;
108 };
109
110 omap3_pmx_core2: pinmux@480025a0 {
111 compatible = "ti,omap3-padconf", "pinctrl-single";
112 reg = <0x480025a0 0x5c>;
113 #address-cells = <1>;
114 #size-cells = <0>;
115 #pinctrl-cells = <1>;
116 #interrupt-cells = <1>;
117 interrupt-controller;
118 pinctrl-single,register-width = <16>;
119 pinctrl-single,function-mask = <0xff1f>;
120 };
121
122 isp: isp@480bc000 {
123 compatible = "ti,omap3-isp";
124 reg = <0x480bc000 0x12fc
125 0x480bd800 0x0600>;
126 interrupts = <24>;
127 iommus = <&mmu_isp>;
128 syscon = <&scm_conf 0x2f0>;
129 ti,phy-type = <OMAP3ISP_PHY_TYPE_CSIPHY>;
130 #clock-cells = <1>;
131 ports {
132 #address-cells = <1>;
133 #size-cells = <0>;
134 };
135 };
136
137 bandgap: bandgap@48002524 {
138 reg = <0x48002524 0x4>;
139 compatible = "ti,omap36xx-bandgap";
140 #thermal-sensor-cells = <0>;
141 };
142
143 target-module@480cb000 {
144 compatible = "ti,sysc-omap3630-sr", "ti,sysc";
145 ti,hwmods = "smartreflex_core";
146 reg = <0x480cb038 0x4>;
147 reg-names = "sysc";
148 ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
149 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
150 <SYSC_IDLE_NO>,
151 <SYSC_IDLE_SMART>;
152 clocks = <&sr2_fck>;
153 clock-names = "fck";
154 #address-cells = <1>;
155 #size-cells = <1>;
156 ranges = <0 0x480cb000 0x001000>;
157
158 smartreflex_core: smartreflex@0 {
159 compatible = "ti,omap3-smartreflex-core";
160 reg = <0 0x400>;
161 interrupts = <19>;
162 };
163 };
164
165 target-module@480c9000 {
166 compatible = "ti,sysc-omap3630-sr", "ti,sysc";
167 ti,hwmods = "smartreflex_mpu_iva";
168 reg = <0x480c9038 0x4>;
169 reg-names = "sysc";
170 ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
171 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
172 <SYSC_IDLE_NO>,
173 <SYSC_IDLE_SMART>;
174 clocks = <&sr1_fck>;
175 clock-names = "fck";
176 #address-cells = <1>;
177 #size-cells = <1>;
178 ranges = <0 0x480c9000 0x001000>;
179
180
181 smartreflex_mpu_iva: smartreflex@480c9000 {
182 compatible = "ti,omap3-smartreflex-mpu-iva";
183 reg = <0 0x400>;
184 interrupts = <18>;
185 };
186 };
187
188 /*
189 * Note that the sysconfig register layout is a subset of the
190 * "ti,sysc-omap4" type register with just sidle and midle bits
191 * available while omap34xx has "ti,sysc-omap2" type sysconfig.
192 */
193 sgx_module: target-module@50000000 {
194 compatible = "ti,sysc-omap4", "ti,sysc";
195 reg = <0x5000fe00 0x4>,
196 <0x5000fe10 0x4>;
197 reg-names = "rev", "sysc";
198 ti,sysc-midle = <SYSC_IDLE_FORCE>,
199 <SYSC_IDLE_NO>,
200 <SYSC_IDLE_SMART>;
201 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
202 <SYSC_IDLE_NO>,
203 <SYSC_IDLE_SMART>;
204 clocks = <&sgx_fck>, <&sgx_ick>;
205 clock-names = "fck", "ick";
206 #address-cells = <1>;
207 #size-cells = <1>;
208 ranges = <0 0x50000000 0x2000000>;
209
210 /*
211 * Closed source PowerVR driver, no child device
212 * binding or driver in mainline
213 */
214 };
215 };
216
217 thermal_zones: thermal-zones {
218 #include "omap3-cpu-thermal.dtsi"
219 };
220};
221
222&sdma {
223 compatible = "ti,omap3630-sdma", "ti,omap-sdma";
224};
225
226/* OMAP3630 needs dss_96m_fck for VENC */
227&venc {
228 clocks = <&dss_tv_fck>, <&dss_96m_fck>;
229 clock-names = "fck", "tv_dac_clk";
230};
231
232&ssi {
233 status = "okay";
234
235 clocks = <&ssi_ssr_fck>,
236 <&ssi_sst_fck>,
237 <&ssi_ick>;
238 clock-names = "ssi_ssr_fck",
239 "ssi_sst_fck",
240 "ssi_ick";
241};
242
243&usb_otg_target {
244 clocks = <&hsotgusb_ick_3430es2>;
245};
246
247/include/ "omap34xx-omap36xx-clocks.dtsi"
248/include/ "omap36xx-omap3430es2plus-clocks.dtsi"
249/include/ "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
250/include/ "omap36xx-clocks.dtsi"
1/*
2 * Device Tree Source for OMAP3 SoC
3 *
4 * Copyright (C) 2012 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 <dt-bindings/bus/ti-sysc.h>
12#include <dt-bindings/media/omap3-isp.h>
13
14#include "omap3.dtsi"
15
16/ {
17 aliases {
18 serial3 = &uart4;
19 };
20
21 cpus {
22 /* OMAP3630/OMAP37xx variants OPP50 to OPP130 and OPP1G */
23 cpu: cpu@0 {
24 operating-points-v2 = <&cpu0_opp_table>;
25
26 vbb-supply = <&abb_mpu_iva>;
27 clock-latency = <300000>; /* From omap-cpufreq driver */
28 };
29 };
30
31 /* see Documentation/devicetree/bindings/opp/opp.txt */
32 cpu0_opp_table: opp-table {
33 compatible = "operating-points-v2-ti-cpu";
34 syscon = <&scm_conf>;
35
36 opp50-300000000 {
37 opp-hz = /bits/ 64 <300000000>;
38 /*
39 * we currently only select the max voltage from table
40 * Table 4-19 of the DM3730 Data sheet (SPRS685B)
41 * Format is: cpu0-supply: <target min max>
42 * vbb-supply: <target min max>
43 */
44 opp-microvolt = <1012500 1012500 1012500>,
45 <1012500 1012500 1012500>;
46 /*
47 * first value is silicon revision bit mask
48 * second one is "speed binned" bit mask
49 */
50 opp-supported-hw = <0xffffffff 3>;
51 opp-suspend;
52 };
53
54 opp100-600000000 {
55 opp-hz = /bits/ 64 <600000000>;
56 opp-microvolt = <1200000 1200000 1200000>,
57 <1200000 1200000 1200000>;
58 opp-supported-hw = <0xffffffff 3>;
59 };
60
61 opp130-800000000 {
62 opp-hz = /bits/ 64 <800000000>;
63 opp-microvolt = <1325000 1325000 1325000>,
64 <1325000 1325000 1325000>;
65 opp-supported-hw = <0xffffffff 3>;
66 };
67
68 opp1g-1000000000 {
69 opp-hz = /bits/ 64 <1000000000>;
70 opp-microvolt = <1375000 1375000 1375000>,
71 <1375000 1375000 1375000>;
72 /* only on am/dm37x with speed-binned bit set */
73 opp-supported-hw = <0xffffffff 2>;
74 turbo-mode;
75 };
76 };
77
78 opp_supply_mpu_iva: opp_supply {
79 compatible = "ti,omap-opp-supply";
80 ti,absolute-max-voltage-uv = <1375000>;
81 };
82
83 ocp@68000000 {
84 uart4: serial@49042000 {
85 compatible = "ti,omap3-uart";
86 reg = <0x49042000 0x400>;
87 interrupts = <80>;
88 dmas = <&sdma 81 &sdma 82>;
89 dma-names = "tx", "rx";
90 ti,hwmods = "uart4";
91 clock-frequency = <48000000>;
92 };
93
94 abb_mpu_iva: regulator-abb-mpu {
95 compatible = "ti,abb-v1";
96 regulator-name = "abb_mpu_iva";
97 #address-cells = <0>;
98 #size-cells = <0>;
99 reg = <0x483072f0 0x8>, <0x48306818 0x4>;
100 reg-names = "base-address", "int-address";
101 ti,tranxdone-status-mask = <0x4000000>;
102 clocks = <&sys_ck>;
103 ti,settling-time = <30>;
104 ti,clock-cycles = <8>;
105 ti,abb_info = <
106 /*uV ABB efuse rbb_m fbb_m vset_m*/
107 1012500 0 0 0 0 0
108 1200000 0 0 0 0 0
109 1325000 0 0 0 0 0
110 1375000 1 0 0 0 0
111 >;
112 };
113
114 omap3_pmx_core2: pinmux@480025a0 {
115 compatible = "ti,omap3-padconf", "pinctrl-single";
116 reg = <0x480025a0 0x5c>;
117 #address-cells = <1>;
118 #size-cells = <0>;
119 #pinctrl-cells = <1>;
120 #interrupt-cells = <1>;
121 interrupt-controller;
122 pinctrl-single,register-width = <16>;
123 pinctrl-single,function-mask = <0xff1f>;
124 };
125
126 isp: isp@480bc000 {
127 compatible = "ti,omap3-isp";
128 reg = <0x480bc000 0x12fc
129 0x480bd800 0x0600>;
130 interrupts = <24>;
131 iommus = <&mmu_isp>;
132 syscon = <&scm_conf 0x2f0>;
133 ti,phy-type = <OMAP3ISP_PHY_TYPE_CSIPHY>;
134 #clock-cells = <1>;
135 ports {
136 #address-cells = <1>;
137 #size-cells = <0>;
138 };
139 };
140
141 bandgap: bandgap@48002524 {
142 reg = <0x48002524 0x4>;
143 compatible = "ti,omap36xx-bandgap";
144 #thermal-sensor-cells = <0>;
145 };
146
147 target-module@480cb000 {
148 compatible = "ti,sysc-omap3630-sr", "ti,sysc";
149 ti,hwmods = "smartreflex_core";
150 reg = <0x480cb038 0x4>;
151 reg-names = "sysc";
152 ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
153 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
154 <SYSC_IDLE_NO>,
155 <SYSC_IDLE_SMART>;
156 clocks = <&sr2_fck>;
157 clock-names = "fck";
158 #address-cells = <1>;
159 #size-cells = <1>;
160 ranges = <0 0x480cb000 0x001000>;
161
162 smartreflex_core: smartreflex@0 {
163 compatible = "ti,omap3-smartreflex-core";
164 reg = <0 0x400>;
165 interrupts = <19>;
166 };
167 };
168
169 target-module@480c9000 {
170 compatible = "ti,sysc-omap3630-sr", "ti,sysc";
171 ti,hwmods = "smartreflex_mpu_iva";
172 reg = <0x480c9038 0x4>;
173 reg-names = "sysc";
174 ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
175 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
176 <SYSC_IDLE_NO>,
177 <SYSC_IDLE_SMART>;
178 clocks = <&sr1_fck>;
179 clock-names = "fck";
180 #address-cells = <1>;
181 #size-cells = <1>;
182 ranges = <0 0x480c9000 0x001000>;
183
184
185 smartreflex_mpu_iva: smartreflex@480c9000 {
186 compatible = "ti,omap3-smartreflex-mpu-iva";
187 reg = <0 0x400>;
188 interrupts = <18>;
189 };
190 };
191
192 /*
193 * Note that the sysconfig register layout is a subset of the
194 * "ti,sysc-omap4" type register with just sidle and midle bits
195 * available while omap34xx has "ti,sysc-omap2" type sysconfig.
196 */
197 sgx_module: target-module@50000000 {
198 compatible = "ti,sysc-omap4", "ti,sysc";
199 reg = <0x5000fe00 0x4>,
200 <0x5000fe10 0x4>;
201 reg-names = "rev", "sysc";
202 ti,sysc-midle = <SYSC_IDLE_FORCE>,
203 <SYSC_IDLE_NO>,
204 <SYSC_IDLE_SMART>;
205 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
206 <SYSC_IDLE_NO>,
207 <SYSC_IDLE_SMART>;
208 clocks = <&sgx_fck>, <&sgx_ick>;
209 clock-names = "fck", "ick";
210 #address-cells = <1>;
211 #size-cells = <1>;
212 ranges = <0 0x50000000 0x2000000>;
213
214 /*
215 * Closed source PowerVR driver, no child device
216 * binding or driver in mainline
217 */
218 };
219 };
220
221 thermal_zones: thermal-zones {
222 #include "omap3-cpu-thermal.dtsi"
223 };
224};
225
226&sdma {
227 compatible = "ti,omap3630-sdma", "ti,omap-sdma";
228};
229
230/* OMAP3630 needs dss_96m_fck for VENC */
231&venc {
232 clocks = <&dss_tv_fck>, <&dss_96m_fck>;
233 clock-names = "fck", "tv_dac_clk";
234};
235
236&ssi {
237 status = "ok";
238
239 clocks = <&ssi_ssr_fck>,
240 <&ssi_sst_fck>,
241 <&ssi_ick>;
242 clock-names = "ssi_ssr_fck",
243 "ssi_sst_fck",
244 "ssi_ick";
245};
246
247/include/ "omap34xx-omap36xx-clocks.dtsi"
248/include/ "omap36xx-omap3430es2plus-clocks.dtsi"
249/include/ "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
250/include/ "omap36xx-clocks.dtsi"