1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun/dts-v1/; 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 9*4882a593Smuzhiyun#include "arm64/rockchip/rk3308.dtsi" 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun/ { 12*4882a593Smuzhiyun model = "Rockchip RK3308 Dot V10 (AArch32)"; 13*4882a593Smuzhiyun compatible = "rockchip,rk3308-dot-v10-aarch32", "rockchip,rk3308"; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun chosen { 16*4882a593Smuzhiyun bootargs = "earlycon=uart8250,mmio32,0xff0c0000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=squashfs rootwait snd_aloop.index=7 snd_aloop.use_raw_jiffies=1"; 17*4882a593Smuzhiyun }; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun acodec_sound: acodec-sound { 20*4882a593Smuzhiyun compatible = "rockchip,multicodecs-card"; 21*4882a593Smuzhiyun rockchip,card-name = "rockchip,rk3308-acodec"; 22*4882a593Smuzhiyun rockchip,codec-hp-det; 23*4882a593Smuzhiyun rockchip,mclk-fs = <256>; 24*4882a593Smuzhiyun rockchip,cpu = <&i2s_8ch_2>; 25*4882a593Smuzhiyun rockchip,codec = <&acodec>; 26*4882a593Smuzhiyun status = "okay"; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun adc-keys { 30*4882a593Smuzhiyun compatible = "adc-keys"; 31*4882a593Smuzhiyun io-channels = <&saradc 1>; 32*4882a593Smuzhiyun io-channel-names = "buttons"; 33*4882a593Smuzhiyun poll-interval = <100>; 34*4882a593Smuzhiyun keyup-threshold-microvolt = <1800000>; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun esc-key { 37*4882a593Smuzhiyun linux,code = <KEY_MICMUTE>; 38*4882a593Smuzhiyun label = "micmute"; 39*4882a593Smuzhiyun press-threshold-microvolt = <1130000>; 40*4882a593Smuzhiyun }; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun menu-key { 43*4882a593Smuzhiyun linux,code = <KEY_PLAY>; 44*4882a593Smuzhiyun label = "play"; 45*4882a593Smuzhiyun press-threshold-microvolt = <624000>; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun vol-down-key { 49*4882a593Smuzhiyun linux,code = <KEY_VOLUMEDOWN>; 50*4882a593Smuzhiyun label = "volume down"; 51*4882a593Smuzhiyun press-threshold-microvolt = <300000>; 52*4882a593Smuzhiyun }; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun vol-up-key { 55*4882a593Smuzhiyun linux,code = <KEY_VOLUMEUP>; 56*4882a593Smuzhiyun label = "volume up"; 57*4882a593Smuzhiyun press-threshold-microvolt = <18000>; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun }; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun dummy_codec: dummy-codec { 62*4882a593Smuzhiyun compatible = "rockchip,dummy-codec"; 63*4882a593Smuzhiyun #sound-dai-cells = <0>; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun sdio_pwrseq: sdio-pwrseq { 67*4882a593Smuzhiyun compatible = "mmc-pwrseq-simple"; 68*4882a593Smuzhiyun pinctrl-names = "default"; 69*4882a593Smuzhiyun pinctrl-0 = <&wifi_enable_h>; 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun /* 72*4882a593Smuzhiyun * On the module itself this is one of these (depending 73*4882a593Smuzhiyun * on the actual card populated): 74*4882a593Smuzhiyun * - SDIO_RESET_L_WL_REG_ON 75*4882a593Smuzhiyun * - PDN (power down when low) 76*4882a593Smuzhiyun */ 77*4882a593Smuzhiyun reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; 78*4882a593Smuzhiyun }; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun spdif_tx_sound: spdif-tx-sound { 81*4882a593Smuzhiyun status = "disabled"; 82*4882a593Smuzhiyun compatible = "simple-audio-card"; 83*4882a593Smuzhiyun simple-audio-card,name = "rockchip,spdif-tx-sound"; 84*4882a593Smuzhiyun simple-audio-card,mclk-fs = <128>; 85*4882a593Smuzhiyun simple-audio-card,cpu { 86*4882a593Smuzhiyun sound-dai = <&spdif_tx>; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun simple-audio-card,codec { 89*4882a593Smuzhiyun sound-dai = <&dummy_codec>; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun vad-sound { 94*4882a593Smuzhiyun status = "disabled"; 95*4882a593Smuzhiyun compatible = "rockchip,multicodecs-card"; 96*4882a593Smuzhiyun rockchip,card-name = "rockchip,rk3308-vad"; 97*4882a593Smuzhiyun rockchip,codec-hp-det; 98*4882a593Smuzhiyun rockchip,cpu = <&i2s_8ch_2>; 99*4882a593Smuzhiyun rockchip,codec = <&acodec>, <&vad>; 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun vdd_log: vdd_core: vdd-core { 103*4882a593Smuzhiyun compatible = "pwm-regulator"; 104*4882a593Smuzhiyun pwms = <&pwm0 0 5000 1>; 105*4882a593Smuzhiyun regulator-name = "vdd_core"; 106*4882a593Smuzhiyun regulator-min-microvolt = <827000>; 107*4882a593Smuzhiyun regulator-max-microvolt = <1340000>; 108*4882a593Smuzhiyun regulator-init-microvolt = <1015000>; 109*4882a593Smuzhiyun regulator-always-on; 110*4882a593Smuzhiyun regulator-boot-on; 111*4882a593Smuzhiyun regulator-settling-time-up-us = <250>; 112*4882a593Smuzhiyun status = "okay"; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun vdd_1v0: vdd-1v0 { 116*4882a593Smuzhiyun compatible = "regulator-fixed"; 117*4882a593Smuzhiyun regulator-name = "vdd_1v0"; 118*4882a593Smuzhiyun regulator-always-on; 119*4882a593Smuzhiyun regulator-boot-on; 120*4882a593Smuzhiyun regulator-min-microvolt = <1000000>; 121*4882a593Smuzhiyun regulator-max-microvolt = <1000000>; 122*4882a593Smuzhiyun }; 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun vcc_1v8: vcc-1v8 { 125*4882a593Smuzhiyun compatible = "regulator-fixed"; 126*4882a593Smuzhiyun regulator-name = "vcc_1v8"; 127*4882a593Smuzhiyun regulator-always-on; 128*4882a593Smuzhiyun regulator-boot-on; 129*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 130*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 131*4882a593Smuzhiyun vin-supply = <&vcc_io>; 132*4882a593Smuzhiyun }; 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun vcc_ddr: vcc-ddr { 135*4882a593Smuzhiyun compatible = "regulator-fixed"; 136*4882a593Smuzhiyun regulator-name = "vcc_ddr"; 137*4882a593Smuzhiyun regulator-always-on; 138*4882a593Smuzhiyun regulator-boot-on; 139*4882a593Smuzhiyun regulator-min-microvolt = <1500000>; 140*4882a593Smuzhiyun regulator-max-microvolt = <1500000>; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun vccio_sdio: vcc_io: vcc-io { 144*4882a593Smuzhiyun compatible = "regulator-fixed"; 145*4882a593Smuzhiyun regulator-name = "vcc_io"; 146*4882a593Smuzhiyun regulator-always-on; 147*4882a593Smuzhiyun regulator-boot-on; 148*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 149*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun wireless-bluetooth { 153*4882a593Smuzhiyun compatible = "bluetooth-platdata"; 154*4882a593Smuzhiyun uart_rts_gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_LOW>; 155*4882a593Smuzhiyun pinctrl-names = "default", "rts_gpio"; 156*4882a593Smuzhiyun pinctrl-0 = <&uart4_rts>; 157*4882a593Smuzhiyun pinctrl-1 = <&uart4_rts_gpio>; 158*4882a593Smuzhiyun BT,power_gpio = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; 159*4882a593Smuzhiyun BT,wake_host_irq = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; 160*4882a593Smuzhiyun status = "okay"; 161*4882a593Smuzhiyun }; 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun wireless-wlan { 164*4882a593Smuzhiyun compatible = "wlan-platdata"; 165*4882a593Smuzhiyun rockchip,grf = <&grf>; 166*4882a593Smuzhiyun clocks = <&cru SCLK_WIFI>; 167*4882a593Smuzhiyun clock-names = "clk_wifi"; 168*4882a593Smuzhiyun ref-clock-frequency = <24000000>; 169*4882a593Smuzhiyun pinctrl-names = "default"; 170*4882a593Smuzhiyun pinctrl-0 = <&wifi_wake_host>, <&rtc_32k>; 171*4882a593Smuzhiyun wifi_chip_type = "rtl8723ds"; 172*4882a593Smuzhiyun WIFI,host_wake_irq = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>; 173*4882a593Smuzhiyun status = "okay"; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun}; 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun&acodec { 178*4882a593Smuzhiyun status = "okay"; 179*4882a593Smuzhiyun rockchip,micbias1; 180*4882a593Smuzhiyun rockchip,micbias2; 181*4882a593Smuzhiyun rockchip,no-deep-low-power; 182*4882a593Smuzhiyun rockchip,no-hp-det; 183*4882a593Smuzhiyun rockchip,loopback-grp = <1>; 184*4882a593Smuzhiyun spk-ctl-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; 185*4882a593Smuzhiyun /* ADC5-8 for 4ch capture, loopback to ADC3-4 */ 186*4882a593Smuzhiyun rockchip,adc-grps-route = <2 3 1 0>; 187*4882a593Smuzhiyun}; 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun&cpu0 { 190*4882a593Smuzhiyun cpu-supply = <&vdd_core>; 191*4882a593Smuzhiyun}; 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun&dmc { 194*4882a593Smuzhiyun center-supply = <&vdd_log>; 195*4882a593Smuzhiyun status = "okay"; 196*4882a593Smuzhiyun}; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun&fiq_debugger { 199*4882a593Smuzhiyun status = "okay"; 200*4882a593Smuzhiyun}; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun&i2s_8ch_2 { 203*4882a593Smuzhiyun status = "okay"; 204*4882a593Smuzhiyun}; 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun&io_domains { 207*4882a593Smuzhiyun status = "okay"; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun vccio0-supply = <&vcc_io>; 210*4882a593Smuzhiyun vccio1-supply = <&vcc_io>; 211*4882a593Smuzhiyun vccio2-supply = <&vcc_1v8>; 212*4882a593Smuzhiyun vccio3-supply = <&vcc_io>; 213*4882a593Smuzhiyun vccio4-supply = <&vccio_sdio>; 214*4882a593Smuzhiyun vccio5-supply = <&vcc_io>; 215*4882a593Smuzhiyun}; 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun&nandc { 218*4882a593Smuzhiyun status = "okay"; 219*4882a593Smuzhiyun}; 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun&pinctrl { 222*4882a593Smuzhiyun sdio-pwrseq { 223*4882a593Smuzhiyun wifi_enable_h: wifi-enable-h { 224*4882a593Smuzhiyun rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 225*4882a593Smuzhiyun }; 226*4882a593Smuzhiyun }; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun wireless-wlan { 229*4882a593Smuzhiyun wifi_wake_host: wifi-wake-host { 230*4882a593Smuzhiyun rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun }; 233*4882a593Smuzhiyun}; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun&pwm0 { 236*4882a593Smuzhiyun status = "okay"; 237*4882a593Smuzhiyun pinctrl-names = "active"; 238*4882a593Smuzhiyun pinctrl-0 = <&pwm0_pin_pull_down>; 239*4882a593Smuzhiyun}; 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun&ramoops { 242*4882a593Smuzhiyun reg = <0x0 0x30000 0x0 0x20000>; 243*4882a593Smuzhiyun record-size = <0x00000>; 244*4882a593Smuzhiyun console-size = <0x20000>; 245*4882a593Smuzhiyun}; 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun&rockchip_suspend { 248*4882a593Smuzhiyun rockchip,pwm-regulator-config = < 249*4882a593Smuzhiyun (0 250*4882a593Smuzhiyun | RKPM_PWM_REGULATOR 251*4882a593Smuzhiyun ) 252*4882a593Smuzhiyun >; 253*4882a593Smuzhiyun 254*4882a593Smuzhiyun status = "okay"; 255*4882a593Smuzhiyun}; 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun&saradc { 258*4882a593Smuzhiyun status = "okay"; 259*4882a593Smuzhiyun vref-supply = <&vcc_1v8>; 260*4882a593Smuzhiyun}; 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun&sdio { 263*4882a593Smuzhiyun max-frequency = <110000000>; 264*4882a593Smuzhiyun bus-width = <4>; 265*4882a593Smuzhiyun cap-sd-highspeed; 266*4882a593Smuzhiyun no-sd; 267*4882a593Smuzhiyun no-mmc; 268*4882a593Smuzhiyun ignore-pm-notify; 269*4882a593Smuzhiyun keep-power-in-suspend; 270*4882a593Smuzhiyun non-removable; 271*4882a593Smuzhiyun mmc-pwrseq = <&sdio_pwrseq>; 272*4882a593Smuzhiyun sd-uhs-sdr104; 273*4882a593Smuzhiyun status = "okay"; 274*4882a593Smuzhiyun}; 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun&sfc { 277*4882a593Smuzhiyun status = "okay"; 278*4882a593Smuzhiyun}; 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun&tsadc { 281*4882a593Smuzhiyun rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ 282*4882a593Smuzhiyun rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */ 283*4882a593Smuzhiyun status = "okay"; 284*4882a593Smuzhiyun}; 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun&u2phy { 287*4882a593Smuzhiyun status = "okay"; 288*4882a593Smuzhiyun u2phy_otg: otg-port { 289*4882a593Smuzhiyun status = "okay"; 290*4882a593Smuzhiyun }; 291*4882a593Smuzhiyun}; 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun&usb20_otg { 294*4882a593Smuzhiyun status = "okay"; 295*4882a593Smuzhiyun}; 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun&vad { 298*4882a593Smuzhiyun status = "disabled"; 299*4882a593Smuzhiyun rockchip,audio-src = <&i2s_8ch_2>; 300*4882a593Smuzhiyun rockchip,det-channel = <0>; 301*4882a593Smuzhiyun rockchip,mode = <1>; 302*4882a593Smuzhiyun rockchip,buffer-time-ms = <500>; 303*4882a593Smuzhiyun #sound-dai-cells = <0>; 304*4882a593Smuzhiyun}; 305