1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Samsung's Exynos4210 based Origen board device tree source 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. 6*4882a593Smuzhiyun * http://www.samsung.com 7*4882a593Smuzhiyun * Copyright (c) 2010-2011 Linaro Ltd. 8*4882a593Smuzhiyun * www.linaro.org 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * Device tree source file for Insignal's Origen board which is based on 11*4882a593Smuzhiyun * Samsung's Exynos4210 SoC. 12*4882a593Smuzhiyun */ 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun/dts-v1/; 15*4882a593Smuzhiyun#include "exynos4210.dtsi" 16*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 17*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 18*4882a593Smuzhiyun#include "exynos-mfc-reserved-memory.dtsi" 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun/ { 21*4882a593Smuzhiyun model = "Insignal Origen evaluation board based on Exynos4210"; 22*4882a593Smuzhiyun compatible = "insignal,origen", "samsung,exynos4210", "samsung,exynos4"; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun memory@40000000 { 25*4882a593Smuzhiyun device_type = "memory"; 26*4882a593Smuzhiyun reg = <0x40000000 0x10000000 27*4882a593Smuzhiyun 0x50000000 0x10000000 28*4882a593Smuzhiyun 0x60000000 0x10000000 29*4882a593Smuzhiyun 0x70000000 0x10000000>; 30*4882a593Smuzhiyun }; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun chosen { 33*4882a593Smuzhiyun bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc"; 34*4882a593Smuzhiyun stdout-path = "serial2:115200n8"; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun mmc_reg: voltage-regulator { 38*4882a593Smuzhiyun compatible = "regulator-fixed"; 39*4882a593Smuzhiyun regulator-name = "VMEM_VDD_2.8V"; 40*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 41*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 42*4882a593Smuzhiyun gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>; 43*4882a593Smuzhiyun enable-active-high; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun gpio_keys { 47*4882a593Smuzhiyun compatible = "gpio-keys"; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun up { 50*4882a593Smuzhiyun label = "Up"; 51*4882a593Smuzhiyun gpios = <&gpx2 0 GPIO_ACTIVE_LOW>; 52*4882a593Smuzhiyun linux,code = <KEY_UP>; 53*4882a593Smuzhiyun wakeup-source; 54*4882a593Smuzhiyun }; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun down { 57*4882a593Smuzhiyun label = "Down"; 58*4882a593Smuzhiyun gpios = <&gpx2 1 GPIO_ACTIVE_LOW>; 59*4882a593Smuzhiyun linux,code = <KEY_DOWN>; 60*4882a593Smuzhiyun wakeup-source; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun back { 64*4882a593Smuzhiyun label = "Back"; 65*4882a593Smuzhiyun gpios = <&gpx1 7 GPIO_ACTIVE_LOW>; 66*4882a593Smuzhiyun linux,code = <KEY_BACK>; 67*4882a593Smuzhiyun wakeup-source; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun home { 71*4882a593Smuzhiyun label = "Home"; 72*4882a593Smuzhiyun gpios = <&gpx1 6 GPIO_ACTIVE_LOW>; 73*4882a593Smuzhiyun linux,code = <KEY_HOME>; 74*4882a593Smuzhiyun wakeup-source; 75*4882a593Smuzhiyun }; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun menu { 78*4882a593Smuzhiyun label = "Menu"; 79*4882a593Smuzhiyun gpios = <&gpx1 5 GPIO_ACTIVE_LOW>; 80*4882a593Smuzhiyun linux,code = <KEY_MENU>; 81*4882a593Smuzhiyun wakeup-source; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun leds { 86*4882a593Smuzhiyun compatible = "gpio-leds"; 87*4882a593Smuzhiyun status { 88*4882a593Smuzhiyun gpios = <&gpx1 3 GPIO_ACTIVE_LOW>; 89*4882a593Smuzhiyun linux,default-trigger = "heartbeat"; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun fixed-rate-clocks { 94*4882a593Smuzhiyun xxti { 95*4882a593Smuzhiyun compatible = "samsung,clock-xxti"; 96*4882a593Smuzhiyun clock-frequency = <0>; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun xusbxti { 100*4882a593Smuzhiyun compatible = "samsung,clock-xusbxti"; 101*4882a593Smuzhiyun clock-frequency = <24000000>; 102*4882a593Smuzhiyun }; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun pmic_ap_clk: pmic-ap-clk { 105*4882a593Smuzhiyun /* Workaround for missing clock on max8997 PMIC */ 106*4882a593Smuzhiyun compatible = "fixed-clock"; 107*4882a593Smuzhiyun #clock-cells = <0>; 108*4882a593Smuzhiyun clock-frequency = <32768>; 109*4882a593Smuzhiyun }; 110*4882a593Smuzhiyun }; 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun display-timings { 113*4882a593Smuzhiyun native-mode = <&timing0>; 114*4882a593Smuzhiyun timing0: timing { 115*4882a593Smuzhiyun clock-frequency = <47500000>; 116*4882a593Smuzhiyun hactive = <1024>; 117*4882a593Smuzhiyun vactive = <600>; 118*4882a593Smuzhiyun hfront-porch = <64>; 119*4882a593Smuzhiyun hback-porch = <16>; 120*4882a593Smuzhiyun hsync-len = <48>; 121*4882a593Smuzhiyun vback-porch = <64>; 122*4882a593Smuzhiyun vfront-porch = <16>; 123*4882a593Smuzhiyun vsync-len = <3>; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun}; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun&cpu0 { 129*4882a593Smuzhiyun cpu0-supply = <&buck1_reg>; 130*4882a593Smuzhiyun}; 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun&cpu_thermal { 133*4882a593Smuzhiyun cooling-maps { 134*4882a593Smuzhiyun map0 { 135*4882a593Smuzhiyun /* Corresponds to 800MHz */ 136*4882a593Smuzhiyun cooling-device = <&cpu0 2 2>; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun map1 { 139*4882a593Smuzhiyun /* Corresponds to 200MHz */ 140*4882a593Smuzhiyun cooling-device = <&cpu0 4 4>; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun }; 143*4882a593Smuzhiyun}; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun&exynos_usbphy { 146*4882a593Smuzhiyun status = "okay"; 147*4882a593Smuzhiyun}; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun&fimd { 150*4882a593Smuzhiyun pinctrl-0 = <&lcd_en &lcd_clk &lcd_data24 &pwm0_out>; 151*4882a593Smuzhiyun pinctrl-names = "default"; 152*4882a593Smuzhiyun status = "okay"; 153*4882a593Smuzhiyun}; 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun&gpu { 156*4882a593Smuzhiyun mali-supply = <&buck3_reg>; 157*4882a593Smuzhiyun status = "okay"; 158*4882a593Smuzhiyun}; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun&hsotg { 161*4882a593Smuzhiyun vusb_d-supply = <&ldo3_reg>; 162*4882a593Smuzhiyun vusb_a-supply = <&ldo8_reg>; 163*4882a593Smuzhiyun dr_mode = "peripheral"; 164*4882a593Smuzhiyun status = "okay"; 165*4882a593Smuzhiyun}; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun&i2c_0 { 168*4882a593Smuzhiyun status = "okay"; 169*4882a593Smuzhiyun samsung,i2c-sda-delay = <100>; 170*4882a593Smuzhiyun samsung,i2c-max-bus-freq = <20000>; 171*4882a593Smuzhiyun pinctrl-0 = <&i2c0_bus>; 172*4882a593Smuzhiyun pinctrl-names = "default"; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun max8997_pmic@66 { 175*4882a593Smuzhiyun compatible = "maxim,max8997-pmic"; 176*4882a593Smuzhiyun reg = <0x66>; 177*4882a593Smuzhiyun interrupt-parent = <&gpx0>; 178*4882a593Smuzhiyun interrupts = <4 IRQ_TYPE_NONE>, <3 IRQ_TYPE_NONE>; 179*4882a593Smuzhiyun pinctrl-names = "default"; 180*4882a593Smuzhiyun pinctrl-0 = <&max8997_irq>; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun max8997,pmic-buck1-dvs-voltage = <1350000>; 183*4882a593Smuzhiyun max8997,pmic-buck2-dvs-voltage = <1100000>; 184*4882a593Smuzhiyun max8997,pmic-buck5-dvs-voltage = <1200000>; 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun regulators { 187*4882a593Smuzhiyun ldo1_reg: LDO1 { 188*4882a593Smuzhiyun regulator-name = "VDD_ABB_3.3V"; 189*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 190*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 191*4882a593Smuzhiyun }; 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun ldo2_reg: LDO2 { 194*4882a593Smuzhiyun regulator-name = "VDD_ALIVE_1.1V"; 195*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 196*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 197*4882a593Smuzhiyun regulator-always-on; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun ldo3_reg: LDO3 { 201*4882a593Smuzhiyun regulator-name = "VMIPI_1.1V"; 202*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 203*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun ldo4_reg: LDO4 { 207*4882a593Smuzhiyun regulator-name = "VDD_RTC_1.8V"; 208*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 209*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 210*4882a593Smuzhiyun regulator-always-on; 211*4882a593Smuzhiyun }; 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun ldo6_reg: LDO6 { 214*4882a593Smuzhiyun regulator-name = "VMIPI_1.8V"; 215*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 216*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 217*4882a593Smuzhiyun regulator-always-on; 218*4882a593Smuzhiyun }; 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun ldo7_reg: LDO7 { 221*4882a593Smuzhiyun regulator-name = "VDD_AUD_1.8V"; 222*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 223*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun ldo8_reg: LDO8 { 227*4882a593Smuzhiyun regulator-name = "VADC_3.3V"; 228*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 229*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 230*4882a593Smuzhiyun }; 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun ldo9_reg: LDO9 { 233*4882a593Smuzhiyun regulator-name = "DVDD_SWB_2.8V"; 234*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 235*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 236*4882a593Smuzhiyun regulator-always-on; 237*4882a593Smuzhiyun }; 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun ldo10_reg: LDO10 { 240*4882a593Smuzhiyun regulator-name = "VDD_PLL_1.1V"; 241*4882a593Smuzhiyun regulator-min-microvolt = <1100000>; 242*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 243*4882a593Smuzhiyun regulator-always-on; 244*4882a593Smuzhiyun }; 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun ldo11_reg: LDO11 { 247*4882a593Smuzhiyun regulator-name = "VDD_AUD_3V"; 248*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 249*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 250*4882a593Smuzhiyun }; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun ldo14_reg: LDO14 { 253*4882a593Smuzhiyun regulator-name = "AVDD18_SWB_1.8V"; 254*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 255*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 256*4882a593Smuzhiyun regulator-always-on; 257*4882a593Smuzhiyun }; 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun ldo17_reg: LDO17 { 260*4882a593Smuzhiyun regulator-name = "VDD_SWB_3.3V"; 261*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 262*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 263*4882a593Smuzhiyun regulator-always-on; 264*4882a593Smuzhiyun }; 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun ldo21_reg: LDO21 { 267*4882a593Smuzhiyun regulator-name = "VDD_MIF_1.2V"; 268*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 269*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 270*4882a593Smuzhiyun regulator-always-on; 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun buck1_reg: BUCK1 { 274*4882a593Smuzhiyun regulator-name = "VDD_ARM_1.2V"; 275*4882a593Smuzhiyun regulator-min-microvolt = <950000>; 276*4882a593Smuzhiyun regulator-max-microvolt = <1350000>; 277*4882a593Smuzhiyun regulator-always-on; 278*4882a593Smuzhiyun regulator-boot-on; 279*4882a593Smuzhiyun }; 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun buck2_reg: BUCK2 { 282*4882a593Smuzhiyun regulator-name = "VDD_INT_1.1V"; 283*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 284*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 285*4882a593Smuzhiyun regulator-always-on; 286*4882a593Smuzhiyun regulator-boot-on; 287*4882a593Smuzhiyun }; 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun buck3_reg: BUCK3 { 290*4882a593Smuzhiyun regulator-name = "VDD_G3D_1.1V"; 291*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 292*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 293*4882a593Smuzhiyun }; 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun buck5_reg: BUCK5 { 296*4882a593Smuzhiyun regulator-name = "VDDQ_M1M2_1.2V"; 297*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 298*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 299*4882a593Smuzhiyun regulator-always-on; 300*4882a593Smuzhiyun }; 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun buck7_reg: BUCK7 { 303*4882a593Smuzhiyun regulator-name = "VDD_LCD_3.3V"; 304*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 305*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 306*4882a593Smuzhiyun regulator-boot-on; 307*4882a593Smuzhiyun regulator-always-on; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun EN32KHZ_AP { 311*4882a593Smuzhiyun regulator-name = "EN32KHZ_AP"; 312*4882a593Smuzhiyun regulator-always-on; 313*4882a593Smuzhiyun }; 314*4882a593Smuzhiyun }; 315*4882a593Smuzhiyun }; 316*4882a593Smuzhiyun}; 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun&pinctrl_1 { 319*4882a593Smuzhiyun max8997_irq: max8997-irq { 320*4882a593Smuzhiyun samsung,pins = "gpx0-3", "gpx0-4"; 321*4882a593Smuzhiyun samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 322*4882a593Smuzhiyun }; 323*4882a593Smuzhiyun}; 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun&sdhci_0 { 326*4882a593Smuzhiyun bus-width = <4>; 327*4882a593Smuzhiyun pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>; 328*4882a593Smuzhiyun pinctrl-names = "default"; 329*4882a593Smuzhiyun vmmc-supply = <&mmc_reg>; 330*4882a593Smuzhiyun status = "okay"; 331*4882a593Smuzhiyun}; 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun&sdhci_2 { 334*4882a593Smuzhiyun bus-width = <4>; 335*4882a593Smuzhiyun pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>; 336*4882a593Smuzhiyun pinctrl-names = "default"; 337*4882a593Smuzhiyun vmmc-supply = <&mmc_reg>; 338*4882a593Smuzhiyun status = "okay"; 339*4882a593Smuzhiyun}; 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun&serial_0 { 342*4882a593Smuzhiyun status = "okay"; 343*4882a593Smuzhiyun}; 344*4882a593Smuzhiyun 345*4882a593Smuzhiyun&serial_1 { 346*4882a593Smuzhiyun status = "okay"; 347*4882a593Smuzhiyun}; 348*4882a593Smuzhiyun 349*4882a593Smuzhiyun&serial_2 { 350*4882a593Smuzhiyun status = "okay"; 351*4882a593Smuzhiyun}; 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun&serial_3 { 354*4882a593Smuzhiyun status = "okay"; 355*4882a593Smuzhiyun}; 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun&rtc { 358*4882a593Smuzhiyun status = "okay"; 359*4882a593Smuzhiyun clocks = <&clock CLK_RTC>, <&pmic_ap_clk>; 360*4882a593Smuzhiyun clock-names = "rtc", "rtc_src"; 361*4882a593Smuzhiyun}; 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun&tmu { 364*4882a593Smuzhiyun status = "okay"; 365*4882a593Smuzhiyun}; 366