1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Samsung's S5PV210 SoC device tree source 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd. 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Mateusz Krawczuk <m.krawczuk@partner.samsung.com> 8*4882a593Smuzhiyun * Tomasz Figa <t.figa@samsung.com> 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * Board device tree source for Samsung Aquila board. 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun/dts-v1/; 14*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 15*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 16*4882a593Smuzhiyun#include "s5pv210.dtsi" 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun/ { 19*4882a593Smuzhiyun model = "Samsung Aquila based on S5PC110"; 20*4882a593Smuzhiyun compatible = "samsung,aquila", "samsung,s5pv210"; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun aliases { 23*4882a593Smuzhiyun i2c3 = &i2c_pmic; 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun chosen { 27*4882a593Smuzhiyun bootargs = "console=ttySAC2,115200n8 root=/dev/mmcblk1p5 rw rootwait ignore_loglevel earlyprintk"; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun memory@30000000 { 31*4882a593Smuzhiyun device_type = "memory"; 32*4882a593Smuzhiyun reg = <0x30000000 0x05000000 33*4882a593Smuzhiyun 0x40000000 0x18000000>; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun pmic_ap_clk: clock-0 { 37*4882a593Smuzhiyun /* Workaround for missing clock on PMIC */ 38*4882a593Smuzhiyun compatible = "fixed-clock"; 39*4882a593Smuzhiyun #clock-cells = <0>; 40*4882a593Smuzhiyun clock-frequency = <32768>; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun vtf_reg: regulator-0 { 44*4882a593Smuzhiyun compatible = "regulator-fixed"; 45*4882a593Smuzhiyun regulator-name = "V_TF_2.8V"; 46*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 47*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 48*4882a593Smuzhiyun gpio = <&mp05 4 GPIO_ACTIVE_HIGH>; 49*4882a593Smuzhiyun enable-active-high; 50*4882a593Smuzhiyun }; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun pda_reg: regulator-1 { 53*4882a593Smuzhiyun compatible = "regulator-fixed"; 54*4882a593Smuzhiyun regulator-name = "VCC_1.8V_PDA"; 55*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 56*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun bat_reg: regulator-2 { 60*4882a593Smuzhiyun compatible = "regulator-fixed"; 61*4882a593Smuzhiyun regulator-name = "V_BAT"; 62*4882a593Smuzhiyun regulator-min-microvolt = <3700000>; 63*4882a593Smuzhiyun regulator-max-microvolt = <3700000>; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun i2c_pmic: i2c-pmic { 67*4882a593Smuzhiyun compatible = "i2c-gpio"; 68*4882a593Smuzhiyun sda-gpios = <&gpj4 0 GPIO_ACTIVE_HIGH>; 69*4882a593Smuzhiyun scl-gpios = <&gpj4 3 GPIO_ACTIVE_HIGH>; 70*4882a593Smuzhiyun i2c-gpio,delay-us = <2>; /* ~100 kHz */ 71*4882a593Smuzhiyun #address-cells = <1>; 72*4882a593Smuzhiyun #size-cells = <0>; 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun pmic@66 { 75*4882a593Smuzhiyun compatible = "national,lp3974"; 76*4882a593Smuzhiyun reg = <0x66>; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun max8998,pmic-buck1-default-dvs-idx = <0>; 79*4882a593Smuzhiyun max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>, 80*4882a593Smuzhiyun <&gph0 4 GPIO_ACTIVE_HIGH>; 81*4882a593Smuzhiyun max8998,pmic-buck1-dvs-voltage = <1200000>, <1200000>, 82*4882a593Smuzhiyun <1200000>, <1200000>; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun max8998,pmic-buck2-default-dvs-idx = <0>; 85*4882a593Smuzhiyun max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>; 86*4882a593Smuzhiyun max8998,pmic-buck2-dvs-voltage = <1200000>, <1200000>; 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun regulators { 89*4882a593Smuzhiyun ldo2_reg: LDO2 { 90*4882a593Smuzhiyun regulator-name = "VALIVE_1.1V"; 91*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 92*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 93*4882a593Smuzhiyun regulator-always-on; 94*4882a593Smuzhiyun }; 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun ldo3_reg: LDO3 { 97*4882a593Smuzhiyun regulator-name = "VUSB+MIPI_1.1V"; 98*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 99*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 100*4882a593Smuzhiyun regulator-always-on; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun ldo4_reg: LDO4 { 104*4882a593Smuzhiyun regulator-name = "VADC_3.3V"; 105*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 106*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun ldo5_reg: LDO5 { 110*4882a593Smuzhiyun regulator-name = "VTF_2.8V"; 111*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 112*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 113*4882a593Smuzhiyun regulator-always-on; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun ldo6_reg: LDO6 { 117*4882a593Smuzhiyun regulator-name = "VCC_3.3V"; 118*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 119*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 120*4882a593Smuzhiyun regulator-always-on; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun ldo7_reg: LDO7 { 124*4882a593Smuzhiyun regulator-name = "VCC_3.0V"; 125*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 126*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 127*4882a593Smuzhiyun regulator-always-on; 128*4882a593Smuzhiyun regulator-boot-on; 129*4882a593Smuzhiyun }; 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun ldo8_reg: LDO8 { 132*4882a593Smuzhiyun regulator-name = "VUSB+VDAC_3.3V"; 133*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 134*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 135*4882a593Smuzhiyun regulator-always-on; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun ldo9_reg: LDO9 { 139*4882a593Smuzhiyun regulator-name = "VCC+VCAM_2.8V"; 140*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 141*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 142*4882a593Smuzhiyun regulator-always-on; 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun ldo10_reg: LDO10 { 146*4882a593Smuzhiyun regulator-name = "VPLL_1.1V"; 147*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 148*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 149*4882a593Smuzhiyun regulator-always-on; 150*4882a593Smuzhiyun regulator-boot-on; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun ldo11_reg: LDO11 { 154*4882a593Smuzhiyun regulator-name = "CAM_IO_2.8V"; 155*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 156*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 157*4882a593Smuzhiyun regulator-always-on; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun ldo12_reg: LDO12 { 161*4882a593Smuzhiyun regulator-name = "CAM_ISP_1.2V"; 162*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 163*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 164*4882a593Smuzhiyun regulator-always-on; 165*4882a593Smuzhiyun }; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun ldo13_reg: LDO13 { 168*4882a593Smuzhiyun regulator-name = "CAM_A_2.8V"; 169*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 170*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 171*4882a593Smuzhiyun regulator-always-on; 172*4882a593Smuzhiyun }; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun ldo14_reg: LDO14 { 175*4882a593Smuzhiyun regulator-name = "CAM_CIF_1.8V"; 176*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 177*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 178*4882a593Smuzhiyun regulator-always-on; 179*4882a593Smuzhiyun }; 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun ldo15_reg: LDO15 { 182*4882a593Smuzhiyun regulator-name = "CAM_AF_3.3V"; 183*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 184*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 185*4882a593Smuzhiyun regulator-always-on; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun ldo16_reg: LDO16 { 189*4882a593Smuzhiyun regulator-name = "VMIPI_1.8V"; 190*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 191*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 192*4882a593Smuzhiyun regulator-always-on; 193*4882a593Smuzhiyun }; 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun ldo17_reg: LDO17 { 196*4882a593Smuzhiyun regulator-name = "CAM_8M_1.8V"; 197*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 198*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 199*4882a593Smuzhiyun regulator-always-on; 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun buck1_reg: BUCK1 { 203*4882a593Smuzhiyun regulator-name = "VARM_1.2V"; 204*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 205*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 206*4882a593Smuzhiyun regulator-always-on; 207*4882a593Smuzhiyun }; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun buck2_reg: BUCK2 { 210*4882a593Smuzhiyun regulator-name = "VINT_1.2V"; 211*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 212*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 213*4882a593Smuzhiyun regulator-always-on; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun buck3_reg: BUCK3 { 217*4882a593Smuzhiyun regulator-name = "VCC_1.8V"; 218*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 219*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 220*4882a593Smuzhiyun regulator-always-on; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun buck4_reg: BUCK4 { 224*4882a593Smuzhiyun regulator-name = "CAM_CORE_1.2V"; 225*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 226*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 227*4882a593Smuzhiyun regulator-always-on; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun ap32khz_reg: EN32KHz-AP { 231*4882a593Smuzhiyun regulator-name = "32KHz AP"; 232*4882a593Smuzhiyun regulator-always-on; 233*4882a593Smuzhiyun }; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun vichg_reg: ENVICHG { 236*4882a593Smuzhiyun regulator-name = "VICHG"; 237*4882a593Smuzhiyun }; 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun safeout1_reg: ESAFEOUT1 { 240*4882a593Smuzhiyun regulator-name = "SAFEOUT1"; 241*4882a593Smuzhiyun regulator-always-on; 242*4882a593Smuzhiyun }; 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun safeout2_reg: ESAFEOUT2 { 245*4882a593Smuzhiyun regulator-name = "SAFEOUT2"; 246*4882a593Smuzhiyun regulator-boot-on; 247*4882a593Smuzhiyun }; 248*4882a593Smuzhiyun }; 249*4882a593Smuzhiyun }; 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun gpio-keys { 254*4882a593Smuzhiyun compatible = "gpio-keys"; 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun power-key { 257*4882a593Smuzhiyun gpios = <&gph2 6 1>; 258*4882a593Smuzhiyun linux,code = <KEY_POWER>; 259*4882a593Smuzhiyun label = "power"; 260*4882a593Smuzhiyun debounce-interval = <1>; 261*4882a593Smuzhiyun wakeup-source; 262*4882a593Smuzhiyun }; 263*4882a593Smuzhiyun }; 264*4882a593Smuzhiyun}; 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun&xusbxti { 267*4882a593Smuzhiyun clock-frequency = <24000000>; 268*4882a593Smuzhiyun}; 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun&keypad { 271*4882a593Smuzhiyun linux,input-no-autorepeat; 272*4882a593Smuzhiyun wakeup-source; 273*4882a593Smuzhiyun samsung,keypad-num-rows = <3>; 274*4882a593Smuzhiyun samsung,keypad-num-columns = <3>; 275*4882a593Smuzhiyun pinctrl-names = "default"; 276*4882a593Smuzhiyun pinctrl-0 = <&keypad_row0>, <&keypad_row1>, <&keypad_row2>, 277*4882a593Smuzhiyun <&keypad_col0>, <&keypad_col1>, <&keypad_col2>; 278*4882a593Smuzhiyun status = "okay"; 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun key_1 { 281*4882a593Smuzhiyun keypad,row = <0>; 282*4882a593Smuzhiyun keypad,column = <1>; 283*4882a593Smuzhiyun linux,code = <KEY_CONNECT>; 284*4882a593Smuzhiyun }; 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun key_2 { 287*4882a593Smuzhiyun keypad,row = <0>; 288*4882a593Smuzhiyun keypad,column = <2>; 289*4882a593Smuzhiyun linux,code = <KEY_BACK>; 290*4882a593Smuzhiyun }; 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun key_3 { 293*4882a593Smuzhiyun keypad,row = <1>; 294*4882a593Smuzhiyun keypad,column = <1>; 295*4882a593Smuzhiyun linux,code = <KEY_CAMERA_FOCUS>; 296*4882a593Smuzhiyun }; 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun key_4 { 299*4882a593Smuzhiyun keypad,row = <1>; 300*4882a593Smuzhiyun keypad,column = <2>; 301*4882a593Smuzhiyun linux,code = <KEY_VOLUMEUP>; 302*4882a593Smuzhiyun }; 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun key_5 { 305*4882a593Smuzhiyun keypad,row = <2>; 306*4882a593Smuzhiyun keypad,column = <1>; 307*4882a593Smuzhiyun linux,code = <KEY_CAMERA>; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun key_6 { 311*4882a593Smuzhiyun keypad,row = <2>; 312*4882a593Smuzhiyun keypad,column = <2>; 313*4882a593Smuzhiyun linux,code = <KEY_VOLUMEDOWN>; 314*4882a593Smuzhiyun }; 315*4882a593Smuzhiyun}; 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun&uart0 { 318*4882a593Smuzhiyun status = "okay"; 319*4882a593Smuzhiyun}; 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun&uart1 { 322*4882a593Smuzhiyun status = "okay"; 323*4882a593Smuzhiyun}; 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun&uart2 { 326*4882a593Smuzhiyun status = "okay"; 327*4882a593Smuzhiyun}; 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun&uart3 { 330*4882a593Smuzhiyun status = "okay"; 331*4882a593Smuzhiyun}; 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun&rtc { 334*4882a593Smuzhiyun clocks = <&clocks CLK_RTC>, <&pmic_ap_clk>; 335*4882a593Smuzhiyun clock-names = "rtc", "rtc_src"; 336*4882a593Smuzhiyun}; 337*4882a593Smuzhiyun 338*4882a593Smuzhiyun&sdhci0 { 339*4882a593Smuzhiyun bus-width = <4>; 340*4882a593Smuzhiyun non-removable; 341*4882a593Smuzhiyun status = "okay"; 342*4882a593Smuzhiyun vmmc-supply = <&ldo5_reg>; 343*4882a593Smuzhiyun pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>; 344*4882a593Smuzhiyun pinctrl-names = "default"; 345*4882a593Smuzhiyun}; 346*4882a593Smuzhiyun 347*4882a593Smuzhiyun&sdhci2 { 348*4882a593Smuzhiyun bus-width = <4>; 349*4882a593Smuzhiyun cd-gpios = <&gph3 4 1>; 350*4882a593Smuzhiyun vmmc-supply = <&vtf_reg>; 351*4882a593Smuzhiyun cd-inverted; 352*4882a593Smuzhiyun pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &t_flash_detect>; 353*4882a593Smuzhiyun pinctrl-names = "default"; 354*4882a593Smuzhiyun status = "okay"; 355*4882a593Smuzhiyun}; 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun&onenand { 358*4882a593Smuzhiyun status = "okay"; 359*4882a593Smuzhiyun}; 360*4882a593Smuzhiyun 361*4882a593Smuzhiyun&hsotg { 362*4882a593Smuzhiyun vusb_a-supply = <&ldo3_reg>; 363*4882a593Smuzhiyun vusb_d-supply = <&ldo8_reg>; 364*4882a593Smuzhiyun dr_mode = "peripheral"; 365*4882a593Smuzhiyun status = "okay"; 366*4882a593Smuzhiyun}; 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun&usbphy { 369*4882a593Smuzhiyun status = "okay"; 370*4882a593Smuzhiyun}; 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun&fimd { 373*4882a593Smuzhiyun pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>; 374*4882a593Smuzhiyun pinctrl-names = "default"; 375*4882a593Smuzhiyun status = "okay"; 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun display-timings { 378*4882a593Smuzhiyun native-mode = <&timing0>; 379*4882a593Smuzhiyun timing0: timing { 380*4882a593Smuzhiyun clock-frequency = <0>; 381*4882a593Smuzhiyun hactive = <800>; 382*4882a593Smuzhiyun vactive = <480>; 383*4882a593Smuzhiyun hfront-porch = <16>; 384*4882a593Smuzhiyun hback-porch = <16>; 385*4882a593Smuzhiyun hsync-len = <2>; 386*4882a593Smuzhiyun vback-porch = <3>; 387*4882a593Smuzhiyun vfront-porch = <28>; 388*4882a593Smuzhiyun vsync-len = <1>; 389*4882a593Smuzhiyun }; 390*4882a593Smuzhiyun }; 391*4882a593Smuzhiyun}; 392*4882a593Smuzhiyun 393*4882a593Smuzhiyun&pinctrl0 { 394*4882a593Smuzhiyun t_flash_detect: t-flash-detect { 395*4882a593Smuzhiyun samsung,pins = "gph3-4"; 396*4882a593Smuzhiyun samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 397*4882a593Smuzhiyun samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; 398*4882a593Smuzhiyun }; 399*4882a593Smuzhiyun}; 400