162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * TOPEET's Exynos4412 based itop board device tree source 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (c) 2016 SUMOMO Computer Association 662306a36Sopenharmony_ci * https://www.sumomo.mobi 762306a36Sopenharmony_ci * Randy Li <ayaka@soulik.info> 862306a36Sopenharmony_ci * 962306a36Sopenharmony_ci * Device tree source file for TOPEET iTop Exynos 4412 core board 1062306a36Sopenharmony_ci * which is based on Samsung's Exynos4412 SoC. 1162306a36Sopenharmony_ci */ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/dts-v1/; 1462306a36Sopenharmony_ci#include <dt-bindings/leds/common.h> 1562306a36Sopenharmony_ci#include <dt-bindings/pwm/pwm.h> 1662306a36Sopenharmony_ci#include <dt-bindings/sound/samsung-i2s.h> 1762306a36Sopenharmony_ci#include "exynos4412-itop-scp-core.dtsi" 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci/ { 2062306a36Sopenharmony_ci model = "TOPEET iTop 4412 Elite board based on Exynos4412"; 2162306a36Sopenharmony_ci compatible = "topeet,itop4412-elite", "samsung,exynos4412", "samsung,exynos4"; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci aliases { 2462306a36Sopenharmony_ci mmc1 = &sdhci_2; 2562306a36Sopenharmony_ci }; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci chosen { 2862306a36Sopenharmony_ci bootargs = "root=/dev/mmcblk0p2 rw rootfstype=ext4 rootdelay=1 rootwait"; 2962306a36Sopenharmony_ci stdout-path = "serial2:115200n8"; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci leds { 3362306a36Sopenharmony_ci compatible = "gpio-leds"; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci led2 { 3662306a36Sopenharmony_ci function = LED_FUNCTION_HEARTBEAT; 3762306a36Sopenharmony_ci color = <LED_COLOR_ID_RED>; 3862306a36Sopenharmony_ci gpios = <&gpx1 0 GPIO_ACTIVE_HIGH>; 3962306a36Sopenharmony_ci default-state = "off"; 4062306a36Sopenharmony_ci linux,default-trigger = "heartbeat"; 4162306a36Sopenharmony_ci }; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci led3 { 4462306a36Sopenharmony_ci label = "red:user"; 4562306a36Sopenharmony_ci color = <LED_COLOR_ID_RED>; 4662306a36Sopenharmony_ci gpios = <&gpk1 1 GPIO_ACTIVE_HIGH>; 4762306a36Sopenharmony_ci default-state = "off"; 4862306a36Sopenharmony_ci }; 4962306a36Sopenharmony_ci }; 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci gpio-keys { 5262306a36Sopenharmony_ci compatible = "gpio-keys"; 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci key-home { 5562306a36Sopenharmony_ci label = "GPIO Key Home"; 5662306a36Sopenharmony_ci linux,code = <KEY_HOME>; 5762306a36Sopenharmony_ci gpios = <&gpx1 1 GPIO_ACTIVE_LOW>; 5862306a36Sopenharmony_ci }; 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci key-back { 6162306a36Sopenharmony_ci label = "GPIO Key Back"; 6262306a36Sopenharmony_ci linux,code = <KEY_BACK>; 6362306a36Sopenharmony_ci gpios = <&gpx1 2 GPIO_ACTIVE_LOW>; 6462306a36Sopenharmony_ci }; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci key-sleep { 6762306a36Sopenharmony_ci label = "GPIO Key Sleep"; 6862306a36Sopenharmony_ci linux,code = <KEY_POWER>; 6962306a36Sopenharmony_ci gpios = <&gpx3 3 GPIO_ACTIVE_LOW>; 7062306a36Sopenharmony_ci }; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci key-vol-up { 7362306a36Sopenharmony_ci label = "GPIO Key Vol+"; 7462306a36Sopenharmony_ci linux,code = <KEY_UP>; 7562306a36Sopenharmony_ci gpios = <&gpx2 1 GPIO_ACTIVE_LOW>; 7662306a36Sopenharmony_ci }; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci key-vol-down { 7962306a36Sopenharmony_ci label = "GPIO Key Vol-"; 8062306a36Sopenharmony_ci linux,code = <KEY_DOWN>; 8162306a36Sopenharmony_ci gpios = <&gpx2 0 GPIO_ACTIVE_LOW>; 8262306a36Sopenharmony_ci }; 8362306a36Sopenharmony_ci }; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci sound { 8662306a36Sopenharmony_ci compatible = "simple-audio-card"; 8762306a36Sopenharmony_ci simple-audio-card,name = "wm-sound"; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci simple-audio-card,format = "i2s"; 9062306a36Sopenharmony_ci simple-audio-card,bitclock-master = <&link0_codec>; 9162306a36Sopenharmony_ci simple-audio-card,frame-master = <&link0_codec>; 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci simple-audio-card,widgets = 9462306a36Sopenharmony_ci "Microphone", "Mic Jack", 9562306a36Sopenharmony_ci "Line", "Line In", 9662306a36Sopenharmony_ci "Line", "Line Out", 9762306a36Sopenharmony_ci "Speaker", "Speaker", 9862306a36Sopenharmony_ci "Headphone", "Headphone Jack"; 9962306a36Sopenharmony_ci simple-audio-card,routing = 10062306a36Sopenharmony_ci "Headphone Jack", "HP_L", 10162306a36Sopenharmony_ci "Headphone Jack", "HP_R", 10262306a36Sopenharmony_ci "Speaker", "SPK_LP", 10362306a36Sopenharmony_ci "Speaker", "SPK_LN", 10462306a36Sopenharmony_ci "Speaker", "SPK_RP", 10562306a36Sopenharmony_ci "Speaker", "SPK_RN", 10662306a36Sopenharmony_ci "LINPUT1", "Mic Jack", 10762306a36Sopenharmony_ci "LINPUT3", "Mic Jack", 10862306a36Sopenharmony_ci "RINPUT1", "Mic Jack", 10962306a36Sopenharmony_ci "RINPUT2", "Mic Jack"; 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci simple-audio-card,cpu { 11262306a36Sopenharmony_ci sound-dai = <&i2s0 0>; 11362306a36Sopenharmony_ci }; 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci link0_codec: simple-audio-card,codec { 11662306a36Sopenharmony_ci sound-dai = <&codec>; 11762306a36Sopenharmony_ci clocks = <&i2s0 CLK_I2S_CDCLK>; 11862306a36Sopenharmony_ci system-clock-frequency = <11289600>; 11962306a36Sopenharmony_ci }; 12062306a36Sopenharmony_ci }; 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci beep { 12362306a36Sopenharmony_ci compatible = "pwm-beeper"; 12462306a36Sopenharmony_ci pwms = <&pwm 0 4000000 PWM_POLARITY_INVERTED>; 12562306a36Sopenharmony_ci }; 12662306a36Sopenharmony_ci}; 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci&adc { 12962306a36Sopenharmony_ci vdd-supply = <&ldo3_reg>; 13062306a36Sopenharmony_ci status = "okay"; 13162306a36Sopenharmony_ci}; 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci&camera { 13462306a36Sopenharmony_ci pinctrl-0 = <&cam_port_a_clk_active>; 13562306a36Sopenharmony_ci pinctrl-names = "default"; 13662306a36Sopenharmony_ci status = "okay"; 13762306a36Sopenharmony_ci assigned-clocks = <&clock CLK_MOUT_CAM0>; 13862306a36Sopenharmony_ci assigned-clock-parents = <&clock CLK_XUSBXTI>; 13962306a36Sopenharmony_ci}; 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci&clock_audss { 14262306a36Sopenharmony_ci assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>, 14362306a36Sopenharmony_ci <&clock_audss EXYNOS_MOUT_I2S>, 14462306a36Sopenharmony_ci <&clock_audss EXYNOS_DOUT_SRP>, 14562306a36Sopenharmony_ci <&clock_audss EXYNOS_DOUT_AUD_BUS>; 14662306a36Sopenharmony_ci assigned-clock-parents = <&clock CLK_FOUT_EPLL>, 14762306a36Sopenharmony_ci <&clock_audss EXYNOS_MOUT_AUDSS>; 14862306a36Sopenharmony_ci assigned-clock-rates = <0>, <0>, <112896000>, <11289600>; 14962306a36Sopenharmony_ci}; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci&ehci { 15262306a36Sopenharmony_ci status = "okay"; 15362306a36Sopenharmony_ci /* In order to reset USB ethernet */ 15462306a36Sopenharmony_ci samsung,vbus-gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci phys = <&exynos_usbphy 1>, <&exynos_usbphy 3>; 15762306a36Sopenharmony_ci phy-names = "host", "hsic1"; 15862306a36Sopenharmony_ci}; 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci&exynos_usbphy { 16162306a36Sopenharmony_ci status = "okay"; 16262306a36Sopenharmony_ci}; 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci&fimc_0 { 16562306a36Sopenharmony_ci status = "okay"; 16662306a36Sopenharmony_ci assigned-clocks = <&clock CLK_MOUT_FIMC0>, 16762306a36Sopenharmony_ci <&clock CLK_SCLK_FIMC0>; 16862306a36Sopenharmony_ci assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 16962306a36Sopenharmony_ci assigned-clock-rates = <0>, <176000000>; 17062306a36Sopenharmony_ci}; 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci&hsotg { 17362306a36Sopenharmony_ci dr_mode = "peripheral"; 17462306a36Sopenharmony_ci status = "okay"; 17562306a36Sopenharmony_ci}; 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci&i2c_4 { 17862306a36Sopenharmony_ci samsung,i2c-sda-delay = <100>; 17962306a36Sopenharmony_ci samsung,i2c-slave-addr = <0x10>; 18062306a36Sopenharmony_ci samsung,i2c-max-bus-freq = <100000>; 18162306a36Sopenharmony_ci pinctrl-0 = <&i2c4_bus>; 18262306a36Sopenharmony_ci pinctrl-names = "default"; 18362306a36Sopenharmony_ci status = "okay"; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci codec: audio-codec@1a { 18662306a36Sopenharmony_ci compatible = "wlf,wm8960"; 18762306a36Sopenharmony_ci reg = <0x1a>; 18862306a36Sopenharmony_ci clocks = <&pmu_system_controller 0>; 18962306a36Sopenharmony_ci clock-names = "mclk"; 19062306a36Sopenharmony_ci wlf,shared-lrclk; 19162306a36Sopenharmony_ci #sound-dai-cells = <0>; 19262306a36Sopenharmony_ci }; 19362306a36Sopenharmony_ci}; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci&i2s0 { 19662306a36Sopenharmony_ci pinctrl-0 = <&i2s0_bus>; 19762306a36Sopenharmony_ci pinctrl-names = "default"; 19862306a36Sopenharmony_ci status = "okay"; 19962306a36Sopenharmony_ci}; 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci&pinctrl_1 { 20262306a36Sopenharmony_ci ether-reset-pins { 20362306a36Sopenharmony_ci samsung,pins = "gpc0-1"; 20462306a36Sopenharmony_ci samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 20562306a36Sopenharmony_ci samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 20662306a36Sopenharmony_ci samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 20762306a36Sopenharmony_ci }; 20862306a36Sopenharmony_ci}; 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci&pwm { 21162306a36Sopenharmony_ci status = "okay"; 21262306a36Sopenharmony_ci pinctrl-0 = <&pwm0_out>; 21362306a36Sopenharmony_ci pinctrl-names = "default"; 21462306a36Sopenharmony_ci samsung,pwm-outputs = <0>; 21562306a36Sopenharmony_ci}; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci&sdhci_2 { 21862306a36Sopenharmony_ci bus-width = <4>; 21962306a36Sopenharmony_ci pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>; 22062306a36Sopenharmony_ci pinctrl-names = "default"; 22162306a36Sopenharmony_ci cd-gpios = <&gpx0 7 GPIO_ACTIVE_LOW>; 22262306a36Sopenharmony_ci cap-sd-highspeed; 22362306a36Sopenharmony_ci vmmc-supply = <&ldo23_reg>; 22462306a36Sopenharmony_ci vqmmc-supply = <&ldo17_reg>; 22562306a36Sopenharmony_ci status = "okay"; 22662306a36Sopenharmony_ci}; 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ci&serial_1 { 22962306a36Sopenharmony_ci status = "okay"; 23062306a36Sopenharmony_ci}; 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci&serial_2 { 23362306a36Sopenharmony_ci status = "okay"; 23462306a36Sopenharmony_ci}; 235