1// SPDX-License-Identifier: GPL-2.0 2/* 3 * TOPEET's Exynos4412 based itop board device tree source 4 * 5 * Copyright (c) 2016 SUMOMO Computer Association 6 * https://www.sumomo.mobi 7 * Randy Li <ayaka@soulik.info> 8 * 9 * Device tree source file for TOPEET iTop Exynos 4412 core board 10 * which is based on Samsung's Exynos4412 SoC. 11 */ 12 13/dts-v1/; 14#include <dt-bindings/leds/common.h> 15#include <dt-bindings/pwm/pwm.h> 16#include <dt-bindings/sound/samsung-i2s.h> 17#include "exynos4412-itop-scp-core.dtsi" 18 19/ { 20 model = "TOPEET iTop 4412 Elite board based on Exynos4412"; 21 compatible = "topeet,itop4412-elite", "samsung,exynos4412", "samsung,exynos4"; 22 23 chosen { 24 bootargs = "root=/dev/mmcblk0p2 rw rootfstype=ext4 rootdelay=1 rootwait"; 25 stdout-path = "serial2:115200n8"; 26 }; 27 28 leds { 29 compatible = "gpio-leds"; 30 31 led2 { 32 function = LED_FUNCTION_HEARTBEAT; 33 color = <LED_COLOR_ID_RED>; 34 gpios = <&gpx1 0 GPIO_ACTIVE_HIGH>; 35 default-state = "off"; 36 linux,default-trigger = "heartbeat"; 37 }; 38 39 led3 { 40 label = "red:user"; 41 color = <LED_COLOR_ID_RED>; 42 gpios = <&gpk1 1 GPIO_ACTIVE_HIGH>; 43 default-state = "off"; 44 }; 45 }; 46 47 gpio-keys { 48 compatible = "gpio-keys"; 49 50 key-home { 51 label = "GPIO Key Home"; 52 linux,code = <KEY_HOME>; 53 gpios = <&gpx1 1 GPIO_ACTIVE_LOW>; 54 }; 55 56 key-back { 57 label = "GPIO Key Back"; 58 linux,code = <KEY_BACK>; 59 gpios = <&gpx1 2 GPIO_ACTIVE_LOW>; 60 }; 61 62 key-sleep { 63 label = "GPIO Key Sleep"; 64 linux,code = <KEY_POWER>; 65 gpios = <&gpx3 3 GPIO_ACTIVE_LOW>; 66 }; 67 68 key-vol-up { 69 label = "GPIO Key Vol+"; 70 linux,code = <KEY_UP>; 71 gpios = <&gpx2 1 GPIO_ACTIVE_LOW>; 72 }; 73 74 key-vol-down { 75 label = "GPIO Key Vol-"; 76 linux,code = <KEY_DOWN>; 77 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>; 78 }; 79 }; 80 81 sound { 82 compatible = "simple-audio-card"; 83 simple-audio-card,name = "wm-sound"; 84 85 simple-audio-card,format = "i2s"; 86 simple-audio-card,bitclock-master = <&link0_codec>; 87 simple-audio-card,frame-master = <&link0_codec>; 88 89 simple-audio-card,widgets = 90 "Microphone", "Mic Jack", 91 "Line", "Line In", 92 "Line", "Line Out", 93 "Speaker", "Speaker", 94 "Headphone", "Headphone Jack"; 95 simple-audio-card,routing = 96 "Headphone Jack", "HP_L", 97 "Headphone Jack", "HP_R", 98 "Speaker", "SPK_LP", 99 "Speaker", "SPK_LN", 100 "Speaker", "SPK_RP", 101 "Speaker", "SPK_RN", 102 "LINPUT1", "Mic Jack", 103 "LINPUT3", "Mic Jack", 104 "RINPUT1", "Mic Jack", 105 "RINPUT2", "Mic Jack"; 106 107 simple-audio-card,cpu { 108 sound-dai = <&i2s0 0>; 109 }; 110 111 link0_codec: simple-audio-card,codec { 112 sound-dai = <&codec>; 113 clocks = <&i2s0 CLK_I2S_CDCLK>; 114 system-clock-frequency = <11289600>; 115 }; 116 }; 117 118 beep { 119 compatible = "pwm-beeper"; 120 pwms = <&pwm 0 4000000 PWM_POLARITY_INVERTED>; 121 }; 122}; 123 124&adc { 125 vdd-supply = <&ldo3_reg>; 126 status = "okay"; 127}; 128 129&camera { 130 pinctrl-0 = <&cam_port_a_clk_active>; 131 pinctrl-names = "default"; 132 status = "okay"; 133 assigned-clocks = <&clock CLK_MOUT_CAM0>; 134 assigned-clock-parents = <&clock CLK_XUSBXTI>; 135}; 136 137&clock_audss { 138 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>, 139 <&clock_audss EXYNOS_MOUT_I2S>, 140 <&clock_audss EXYNOS_DOUT_SRP>, 141 <&clock_audss EXYNOS_DOUT_AUD_BUS>; 142 assigned-clock-parents = <&clock CLK_FOUT_EPLL>, 143 <&clock_audss EXYNOS_MOUT_AUDSS>; 144 assigned-clock-rates = <0>, <0>, <112896000>, <11289600>; 145}; 146 147&ehci { 148 status = "okay"; 149 /* In order to reset USB ethernet */ 150 samsung,vbus-gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>; 151 152 phys = <&exynos_usbphy 1>, <&exynos_usbphy 3>; 153 phy-names = "host", "hsic1"; 154}; 155 156&exynos_usbphy { 157 status = "okay"; 158}; 159 160&fimc_0 { 161 status = "okay"; 162 assigned-clocks = <&clock CLK_MOUT_FIMC0>, 163 <&clock CLK_SCLK_FIMC0>; 164 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 165 assigned-clock-rates = <0>, <176000000>; 166}; 167 168&hsotg { 169 dr_mode = "peripheral"; 170 status = "okay"; 171}; 172 173&i2c_4 { 174 samsung,i2c-sda-delay = <100>; 175 samsung,i2c-slave-addr = <0x10>; 176 samsung,i2c-max-bus-freq = <100000>; 177 pinctrl-0 = <&i2c4_bus>; 178 pinctrl-names = "default"; 179 status = "okay"; 180 181 codec: audio-codec@1a { 182 compatible = "wlf,wm8960"; 183 reg = <0x1a>; 184 clocks = <&pmu_system_controller 0>; 185 clock-names = "MCLK1"; 186 wlf,shared-lrclk; 187 #sound-dai-cells = <0>; 188 }; 189}; 190 191&i2s0 { 192 pinctrl-0 = <&i2s0_bus>; 193 pinctrl-names = "default"; 194 status = "okay"; 195}; 196 197&pinctrl_1 { 198 ether-reset-pins { 199 samsung,pins = "gpc0-1"; 200 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 201 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 202 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 203 }; 204}; 205 206&pwm { 207 status = "okay"; 208 pinctrl-0 = <&pwm0_out>; 209 pinctrl-names = "default"; 210 samsung,pwm-outputs = <0>; 211}; 212 213&sdhci_2 { 214 bus-width = <4>; 215 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>; 216 pinctrl-names = "default"; 217 cd-gpios = <&gpx0 7 GPIO_ACTIVE_LOW>; 218 cap-sd-highspeed; 219 vmmc-supply = <&ldo23_reg>; 220 vqmmc-supply = <&ldo17_reg>; 221 status = "okay"; 222}; 223 224&serial_1 { 225 status = "okay"; 226}; 227 228&serial_2 { 229 status = "okay"; 230}; 231