/* * Hardkernel Odroid XU3 board device tree source * * Copyright (c) 2014 Collabora Ltd. * Copyright (c) 2013 Samsung Electronics Co., Ltd. * http://www.samsung.com * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include #include #include #include #include "exynos5800.dtsi" / { memory { reg = <0x40000000 0x7EA00000>; }; chosen { linux,stdout-path = &serial_2; }; firmware@02073000 { compatible = "samsung,secure-firmware"; reg = <0x02073000 0x1000>; }; fixed-rate-clocks { oscclk { compatible = "samsung,exynos5420-oscclk"; clock-frequency = <24000000>; }; }; emmc_pwrseq: pwrseq { pinctrl-0 = <&emmc_nrst_pin>; pinctrl-names = "default"; compatible = "mmc-pwrseq-emmc"; reset-gpios = <&gpd1 0 1>; }; pwmleds { compatible = "pwm-leds"; greenled { label = "green:mmc0"; pwms = <&pwm 1 2000000 0>; pwm-names = "pwm1"; /* * Green LED is much brighter than the others * so limit its max brightness */ max_brightness = <127>; linux,default-trigger = "mmc0"; }; blueled { label = "blue:heartbeat"; pwms = <&pwm 2 2000000 0>; pwm-names = "pwm2"; max_brightness = <255>; linux,default-trigger = "heartbeat"; }; }; gpioleds { compatible = "gpio-leds"; redled { label = "red:microSD"; gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>; default-state = "off"; linux,default-trigger = "mmc1"; }; }; sound: sound { compatible = "simple-audio-card"; simple-audio-card,name = "Odroid-XU3"; simple-audio-card,widgets = "Headphone", "Headphone Jack", "Speakers", "Speakers"; simple-audio-card,routing = "Headphone Jack", "HPL", "Headphone Jack", "HPR", "Headphone Jack", "MICBIAS", "IN1", "Headphone Jack", "Speakers", "SPKL", "Speakers", "SPKR"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&link0_codec>; simple-audio-card,frame-master = <&link0_codec>; simple-audio-card,cpu { sound-dai = <&i2s0 0>; system-clock-frequency = <19200000>; }; link0_codec: simple-audio-card,codec { sound-dai = <&max98090>; clocks = <&i2s0 CLK_I2S_CDCLK>; }; }; }; &clock_audss { assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>, <&clock_audss EXYNOS_MOUT_I2S>, <&clock_audss EXYNOS_DOUT_AUD_BUS>; assigned-clock-parents = <&clock CLK_FIN_PLL>, <&clock_audss EXYNOS_MOUT_AUDSS>; assigned-clock-rates = <0>, <0>, <19200000>; }; &fimd { status = "okay"; }; &hdmi { status = "okay"; hpd-gpio = <&gpx3 7 0>; pinctrl-names = "default"; pinctrl-0 = <&hdmi_hpd_irq>; vdd_osc-supply = <&ldo7_reg>; vdd_pll-supply = <&ldo6_reg>; vdd-supply = <&ldo6_reg>; }; &hsi2c_4 { status = "okay"; s2mps11_pmic@66 { compatible = "samsung,s2mps11-pmic"; reg = <0x66>; s2mps11,buck2-ramp-delay = <12>; s2mps11,buck34-ramp-delay = <12>; s2mps11,buck16-ramp-delay = <12>; s2mps11,buck6-ramp-enable = <1>; s2mps11,buck2-ramp-enable = <1>; s2mps11,buck3-ramp-enable = <1>; s2mps11,buck4-ramp-enable = <1>; interrupt-parent = <&gpx0>; interrupts = <4 IRQ_TYPE_EDGE_FALLING>; pinctrl-names = "default"; pinctrl-0 = <&s2mps11_irq>; s2mps11_osc: clocks { #clock-cells = <1>; clock-output-names = "s2mps11_ap", "s2mps11_cp", "s2mps11_bt"; }; regulators { ldo1_reg: LDO1 { regulator-name = "vdd_ldo1"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-always-on; }; ldo3_reg: LDO3 { regulator-name = "vdd_ldo3"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; ldo5_reg: LDO5 { regulator-name = "vdd_ldo5"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; ldo6_reg: LDO6 { regulator-name = "vdd_ldo6"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-always-on; }; ldo7_reg: LDO7 { regulator-name = "vdd_ldo7"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; ldo8_reg: LDO8 { regulator-name = "vdd_ldo8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; ldo9_reg: LDO9 { regulator-name = "vdd_ldo9"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; regulator-always-on; }; ldo10_reg: LDO10 { regulator-name = "vdd_ldo10"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; ldo11_reg: LDO11 { regulator-name = "vdd_ldo11"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-always-on; }; ldo12_reg: LDO12 { regulator-name = "vdd_ldo12"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; ldo13_reg: LDO13 { regulator-name = "vdd_ldo13"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-always-on; }; ldo15_reg: LDO15 { regulator-name = "vdd_ldo15"; regulator-min-microvolt = <3100000>; regulator-max-microvolt = <3100000>; regulator-always-on; }; ldo16_reg: LDO16 { regulator-name = "vdd_ldo16"; regulator-min-microvolt = <2200000>; regulator-max-microvolt = <2200000>; regulator-always-on; }; ldo17_reg: LDO17 { regulator-name = "tsp_avdd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; ldo19_reg: LDO19 { regulator-name = "vdd_sd"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-always-on; }; ldo24_reg: LDO24 { regulator-name = "tsp_io"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-always-on; }; ldo26_reg: LDO26 { regulator-name = "vdd_ldo26"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; regulator-always-on; }; buck1_reg: BUCK1 { regulator-name = "vdd_mif"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1300000>; regulator-always-on; regulator-boot-on; }; buck2_reg: BUCK2 { regulator-name = "vdd_arm"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; }; buck3_reg: BUCK3 { regulator-name = "vdd_int"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1400000>; regulator-always-on; regulator-boot-on; }; buck4_reg: BUCK4 { regulator-name = "vdd_g3d"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1400000>; regulator-always-on; regulator-boot-on; }; buck5_reg: BUCK5 { regulator-name = "vdd_mem"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1400000>; regulator-always-on; regulator-boot-on; }; buck6_reg: BUCK6 { regulator-name = "vdd_kfc"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; }; buck7_reg: BUCK7 { regulator-name = "vdd_1.0v_ldo"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; }; buck8_reg: BUCK8 { regulator-name = "vdd_1.8v_ldo"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; }; buck9_reg: BUCK9 { regulator-name = "vdd_2.8v_ldo"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3750000>; regulator-always-on; regulator-boot-on; }; buck10_reg: BUCK10 { regulator-name = "vdd_vmem"; regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; regulator-always-on; regulator-boot-on; }; }; }; }; &hsi2c_5 { status = "okay"; max98090: max98090@10 { compatible = "maxim,max98090"; reg = <0x10>; interrupt-parent = <&gpx3>; interrupts = <2 0>; clocks = <&i2s0 CLK_I2S_CDCLK>; clock-names = "mclk"; #sound-dai-cells = <0>; }; }; &i2c_2 { samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <66000>; status = "okay"; hdmiddc@50 { compatible = "samsung,exynos4210-hdmiddc"; reg = <0x50>; }; }; &i2s0 { status = "okay"; }; &mfc { samsung,mfc-r = <0x43000000 0x800000>; samsung,mfc-l = <0x51000000 0x800000>; }; &mmc_0 { status = "okay"; mmc-pwrseq = <&emmc_pwrseq>; cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>; card-detect-delay = <200>; samsung,dw-mshc-ciu-div = <3>; samsung,dw-mshc-sdr-timing = <0 4>; samsung,dw-mshc-ddr-timing = <0 2>; samsung,dw-mshc-hs400-timing = <0 2>; samsung,read-strobe-delay = <90>; pinctrl-names = "default"; pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd &sd0_rclk>; bus-width = <8>; cap-mmc-highspeed; mmc-hs200-1_8v; mmc-hs400-1_8v; }; &mmc_2 { status = "okay"; card-detect-delay = <200>; samsung,dw-mshc-ciu-div = <3>; samsung,dw-mshc-sdr-timing = <0 4>; samsung,dw-mshc-ddr-timing = <0 2>; pinctrl-names = "default"; pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; bus-width = <4>; cap-sd-highspeed; }; &pinctrl_0 { hdmi_hpd_irq: hdmi-hpd-irq { samsung,pins = "gpx3-7"; samsung,pin-function = <0>; samsung,pin-pud = <1>; samsung,pin-drv = <0>; }; s2mps11_irq: s2mps11-irq { samsung,pins = "gpx0-4"; samsung,pin-function = <0xf>; samsung,pin-pud = <0>; samsung,pin-drv = <0>; }; }; &pinctrl_1 { emmc_nrst_pin: emmc-nrst { samsung,pins = "gpd1-0"; samsung,pin-function = <0>; samsung,pin-pud = <0>; samsung,pin-drv = <0>; }; }; &pwm { /* * PWM 0 -- fan * PWM 1 -- Green LED * PWM 2 -- Blue LED * PWM 3 -- on MIPI connector for backlight */ pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>; pinctrl-names = "default"; status = "okay"; }; &rtc { status = "okay"; clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>; clock-names = "rtc", "rtc_src"; }; &usbdrd_dwc3_0 { dr_mode = "host"; }; &usbdrd_dwc3_1 { dr_mode = "otg"; };