/* * Copyright (c) 2014, 2015 FUKAUMI Naoki * * 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 "rk3066a.dtsi" / { model = "Rayeager PX2"; compatible = "chipspark,rayeager-px2", "rockchip,rk3066a"; memory { reg = <0x60000000 0x40000000>; }; ir: ir-receiver { compatible = "gpio-ir-receiver"; gpios = <&gpio6 1 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&ir_int>; }; keys: gpio-keys { compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0>; button@0 { gpio-key,wakeup = <1>; gpios = <&gpio6 2 GPIO_ACTIVE_LOW>; label = "GPIO Power"; linux,code = <116>; pinctrl-names = "default"; pinctrl-0 = <&pwr_key>; }; }; vsys: vsys-regulator { compatible = "regulator-fixed"; regulator-name = "vsys"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; }; /* input for 5V_STDBY is VSYS or DC5V, selectable by jumper J4 */ vcc_stdby: 5v-stdby-regulator { compatible = "regulator-fixed"; regulator-name = "5v_stdby"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; }; vcc_emmc: emmc-regulator { compatible = "regulator-fixed"; regulator-name = "emmc_vccq"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; vin-supply = <&vsys>; }; vcc_sata: sata-regulator { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&sata_pwr>; regulator-name = "usb_5v"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; vin-supply = <&vcc_stdby>; }; vcc_sd: sdmmc-regulator { compatible = "regulator-fixed"; gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc_pwr>; regulator-name = "vcc_sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; startup-delay-us = <100000>; vin-supply = <&vcc_io>; }; vcc_host: usb-host-regulator { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&host_drv>; regulator-name = "host-pwr"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; vin-supply = <&vcc_stdby>; }; vcc_otg: usb-otg-regulator { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&otg_drv>; regulator-name = "vcc_otg"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; vin-supply = <&vcc_stdby>; }; }; &cpu0 { cpu0-supply = <&vdd_arm>; }; &emac { pinctrl-names = "default"; pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&rmii_rst>; phy = <&phy0>; phy-supply = <&vcc_rmii>; status = "okay"; phy0: ethernet-phy@0 { reg = <0>; }; }; &emmc { broken-cd; bus-width = <8>; cap-mmc-highspeed; disable-wp; non-removable; num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; vmmc-supply = <&vcc_emmc>; vqmmc-supply = <&vcc_emmc>; status = "okay"; }; &i2c0 { clock-frequency = <400000>; status = "okay"; ak8963: ak8963@0d { compatible = "asahi-kasei,ak8975"; reg = <0x0d>; interrupt-parent = <&gpio4>; interrupts = <17 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default"; pinctrl-0 = <&comp_int>; }; mma8452: mma8452@1d { compatible = "fsl,mma8452"; reg = <0x1d>; interrupt-parent = <&gpio4>; interrupts = <16 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default"; pinctrl-0 = <&gsensor_int>; }; }; &i2c1 { clock-frequency = <400000>; status = "okay"; tps: tps@2d { reg = <0x2d>; interrupt-parent = <&gpio6>; interrupts = <4 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default"; pinctrl-0 = <&pmic_int>, <&pwr_hold>; vcc1-supply = <&vsys>; vcc2-supply = <&vsys>; vcc3-supply = <&vsys>; vcc4-supply = <&vsys>; vcc5-supply = <&vcc_io>; vcc6-supply = <&vcc_io>; vcc7-supply = <&vsys>; vccio-supply = <&vsys>; regulators { vcc_rtc: regulator@0 { regulator-name = "vcc_rtc"; regulator-always-on; }; vcc_io: regulator@1 { regulator-name = "vcc_io"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; vdd_arm: regulator@2 { regulator-name = "vdd_arm"; regulator-min-microvolt = <600000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; }; vcc_ddr: regulator@3 { regulator-name = "vcc_ddr"; regulator-min-microvolt = <600000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; }; vcc18: regulator@5 { regulator-name = "vcc18"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; vdd_11: regulator@6 { regulator-name = "vdd_11"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-always-on; }; vcc_25: regulator@7 { regulator-name = "vcc_25"; regulator-min-microvolt = <2500000>; regulator-max-microvolt = <2500000>; regulator-always-on; }; vccio_wl: regulator@8 { regulator-name = "vccio_wl"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; vcc25_hdmi: regulator@9 { regulator-name = "vcc25_hdmi"; regulator-min-microvolt = <2500000>; regulator-max-microvolt = <2500000>; }; vcca_33: regulator@10 { regulator-name = "vcca_33"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; vcc_rmii: regulator@11 { regulator-name = "vcc_rmii"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; vcc28_cif: regulator@12 { regulator-name = "vcc28_cif"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; }; }; }; #include "tps65910.dtsi" &i2c2 { status = "okay"; }; &i2c3 { status = "okay"; }; &i2c4 { status = "okay"; }; &mmc0 { bus-width = <4>; disable-wp; num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; vmmc-supply = <&vcc_sd>; status = "okay"; }; &mmc1 { broken-cd; bus-width = <4>; disable-wp; non-removable; num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>; vmmc-supply = <&vccio_wl>; status = "okay"; }; &pinctrl { pcfg_output_high: pcfg-output-high { output-high; }; ak8963 { comp_int: comp-int { rockchip,pins = <4 17 RK_FUNC_GPIO &pcfg_pull_default>; }; }; emac { rmii_rst: rmii-rst { rockchip,pins = <1 30 RK_FUNC_GPIO &pcfg_output_high>; }; }; ir { ir_int: ir-int { rockchip,pins = <6 1 RK_FUNC_GPIO &pcfg_pull_default>; }; }; keys { pwr_key: pwr-key { rockchip,pins = <6 2 RK_FUNC_GPIO &pcfg_pull_default>; }; }; mma8452 { gsensor_int: gsensor-int { rockchip,pins = <4 16 RK_FUNC_GPIO &pcfg_pull_default>; }; }; mmc { sdmmc_pwr: sdmmc-pwr { rockchip,pins = <3 7 RK_FUNC_GPIO &pcfg_pull_default>; }; }; usb_host { host_drv: host-drv { rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_default>; }; hub_rst: hub-rst { rockchip,pins = <1 31 RK_FUNC_GPIO &pcfg_output_high>; }; sata_pwr: sata-pwr { rockchip,pins = <4 22 RK_FUNC_GPIO &pcfg_pull_default>; }; sata_reset: sata-reset { rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_output_high>; }; }; usb_otg { otg_drv: otg-drv { rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_default>; }; }; tps { pmic_int: pmic-int { rockchip,pins = <6 4 RK_FUNC_GPIO &pcfg_pull_default>; }; pwr_hold: pwr-hold { rockchip,pins = <6 8 RK_FUNC_GPIO &pcfg_output_high>; }; }; }; &pwm1 { status = "okay"; }; &pwm2 { status = "okay"; }; &saradc { vref-supply = <&vcc_25>; status = "okay"; }; &spi0 { status = "okay"; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; status = "okay"; }; &uart2 { status = "okay"; }; &uart3 { pinctrl-names = "default"; pinctrl-0 = <&uart3_xfer>, <&uart3_cts>, <&uart3_rts>; status = "okay"; }; &usb_host { pinctrl-names = "default"; pinctrl-0 = <&hub_rst>, <&sata_reset>; status = "okay"; }; &usb_otg { status = "okay"; }; &wdt { status = "okay"; };