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