/* * This file is dual-licensed: you can use it either under the terms * of the GPL or the X11 license, at your option. Note that this dual * licensing only applies to this file, and not this project as a * whole. * * a) This file is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This file is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * Or, alternatively, * * b) Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /dts-v1/; #include #include "rk3288-rock2-som.dtsi" / { model = "Radxa Rock 2 Square"; compatible = "radxa,rock2-square", "rockchip,rk3288"; chosen { stdout-path = "serial2:115200n8"; }; adc-keys { compatible = "adc-keys"; io-channels = <&saradc 1>; io-channel-names = "buttons"; keyup-threshold-microvolt = <1800000>; button-recovery { label = "Recovery"; linux,code = ; press-threshold-microvolt = <0>; }; }; gpio-keys { compatible = "gpio-keys"; power { gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; label = "GPIO Power"; linux,code = ; pinctrl-names = "default"; pinctrl-0 = <&pwr_key>; wakeup-source; }; }; gpio-leds { compatible = "gpio-leds"; heartbeat { gpios = <&gpio7 RK_PB7 GPIO_ACTIVE_LOW>; label = "rock2:green:state1"; linux,default-trigger = "heartbeat"; }; mmc { gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>; label = "rock2:blue:state2"; linux,default-trigger = "mmc0"; }; }; ir: ir-receiver { compatible = "gpio-ir-receiver"; gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&ir_int>; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "SPDIF"; simple-audio-card,dai-link@1 { /* S/PDIF - S/PDIF */ cpu { sound-dai = <&spdif>; }; codec { sound-dai = <&spdif_out>; }; }; }; sata_pwr: sata-prw-regulator { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&sata_pwr_en>; /* Always turn on the 5V sata power connector */ regulator-always-on; regulator-name = "sata_pwr"; }; spdif_out: spdif-out { compatible = "linux,spdif-dit"; #sound-dai-cells = <0>; }; sound-i2s { compatible = "rockchip,rk3288-hdmi-analog"; pinctrl-names = "default"; pinctrl-0 = <&phone_ctl>, <&hp_det>; rockchip,audio-codec = <&es8388>; rockchip,hp-det-gpios = <&gpio7 7 GPIO_ACTIVE_HIGH>; rockchip,hp-en-gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>; rockchip,i2s-controller = <&i2s>; rockchip,model = "I2S"; rockchip,routing = "Analog", "LOUT2", "Analog", "ROUT2"; }; sdio_pwrseq: sdio-pwrseq { compatible = "mmc-pwrseq-simple"; clocks = <&hym8563>; clock-names = "ext_clock"; pinctrl-names = "default"; pinctrl-0 = <&wifi_enable>; reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; }; vcc_usb_host: vcc-host-regulator { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&host_vbus_drv>; regulator-name = "vcc_host"; }; vcc_sd: sdmmc-regulator { compatible = "regulator-fixed"; gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc_pwr>; regulator-name = "vcc_sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_io>; }; }; &sdio0 { bus-width = <4>; cap-sd-highspeed; cap-sdio-irq; disable-wp; mmc-pwrseq = <&sdio_pwrseq>; non-removable; pinctrl-names = "default"; pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>; vmmc-supply = <&vcc_io>; vqmmc-supply = <&vcc_18>; status = "okay"; }; &sdmmc { bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; card-detect-delay = <200>; disable-wp; /* wp not hooked up */ pinctrl-names = "default"; pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; vmmc-supply = <&vcc_sd>; vqmmc-supply = <&vccio_sd>; status = "okay"; }; &gmac { status = "ok"; }; &hdmi { ddc-i2c-bus = <&i2c5>; status = "okay"; }; &i2c0 { hym8563: hym8563@51 { compatible = "haoyu,hym8563"; reg = <0x51>; #clock-cells = <0>; clock-frequency = <32768>; clock-output-names = "xin32k"; interrupt-parent = <&gpio0>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&pmic_int>; }; }; &i2c2 { status = "okay"; es8388: es8388@10 { compatible = "everest,es8388", "everest,es8328"; reg = <0x10>; AVDD-supply = <&vccio_codec>; DVDD-supply = <&vccio_codec>; HPVDD-supply = <&vccio_codec>; PVDD-supply = <&vccio_codec>; clocks = <&cru SCLK_I2S0_OUT>; }; }; &i2c5 { status = "okay"; }; &i2s { status = "okay"; }; &pinctrl { ir { ir_int: ir-int { rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>; }; }; keys { pwr_key: pwr-key { rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; }; }; pmic { pmic_int: pmic-int { rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>; }; }; headphone { hp_det: hp-det { rockchip,pins = <7 7 RK_FUNC_GPIO &pcfg_pull_none>; }; phone_ctl: phone-ctl { rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>; }; }; usb { host_vbus_drv: host-vbus-drv { rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>; }; }; sata { sata_pwr_en: sata-pwr-en { rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_pull_none>; }; }; sdmmc { sdmmc_pwr: sdmmc-pwr { rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; }; }; sdio { wifi_enable: wifi-enable { rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>; }; }; }; &saradc { status = "okay"; }; &spdif { status = "okay"; }; &uart2 { status = "okay"; }; &usbphy { status = "okay"; }; &usbphy1 { vbus-supply = <&vcc_usb_host>; }; &usb_host0_ehci { status = "okay"; }; &usb_host1 { status = "okay"; }; &usb_otg { status = "okay"; };