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