关键词:rk3128-fireprime.dts ,linux_3.10,rockchip,dts
dts — rk3128-fireprime.dts
/*
* 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 <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include <dt-bindings/pwm/pwm.h>
#include "rk3128.dtsi"
#include "rk312x-android.dtsi"
/ {
model = "Rockchip RK3128 Fireprime board";
compatible = "rockchip,rk3128";
fiq-debugger {
compatible = "rockchip,fiq-debugger";
rockchip,serial-id = <2>;
rockchip,signal-irq = <159>;
rockchip,wake-irq = <0>;
/* If enable uart uses irq instead of fiq */
rockchip,irq-mode-enable = <1>;
rockchip,baudrate = <115200>; /* Only 115200 and 1500000 */
interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
status = "okay";
};
lvds_panel: lvds-panel {
status = "disabled";
ports {
panel_in_lvds: endpoint {
remote-endpoint = <&lvds_out_panel>;
};
};
};
clkin_gmac: external-gmac-clock {
compatible = "fixed-clock";
clock-frequency = <125000000>;
clock-output-names = "gmac_clkin";
#clock-cells = <0>;
};
vcc_phy: vcc-phy-regulator {
compatible = "regulator-fixed";
enable-active-high;
regulator-name = "vcc_phy";
regulator-always-on;
regulator-boot-on;
};
vcc_sys: vcc-sys {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
vcc_host_5v: vcc-host-5v-regulator {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&host_vbus_drv>;
regulator-name = "vcc_host_5v";
regulator-always-on;
};
vcc_otg_vbus: otg-vbus-regulator {
compatible = "regulator-fixed";
gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&otg_vbus_drv>;
regulator-name = "vcc_otg_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
};
xin32k: xin32k {
compatible = "fixed-clock";
clock-frequency = <32768>;
clock-output-names = "xin32k";
#clock-cells = <0>;
};
};
&cpu0 {
cpu-supply = <&vdd_arm>;
};
&display_subsystem {
status = "okay";
route {
route_lvds: route-lvds {
status = "disabled";
};
};
};
&emmc {
bus-width = <8>;
cap-mmc-highspeed;
supports-emmc;
disable-wp;
non-removable;
num-slots = <1>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
status = "okay";
};
&gmac {
assigned-clocks = <&cru SCLK_MAC>;
assigned-clock-parents = <&clkin_gmac>;
clock_in_out = "input";
pinctrl-names = "default";
pinctrl-0 = <&rgmii_pins>;
phy-supply = <&vcc_phy>;
phy-mode = "rgmii";
snps,reset-active-low;
snps,reset-delays-us = <0 10000 50000>;
snps,reset-gpio = <&gpio2 24 GPIO_ACTIVE_LOW>;
tx_delay = <0x30>;
rx_delay = <0x16>;
status = "okay";
};
&i2c0 {
status = "okay";
clock-frequency = <400000>;
rk818: pmic@1c {
compatible = "rockchip,rk818";
status = "okay";
reg = <0x1c>;
clock-output-names = "rk818-clkout1", "wifibt_32kin";
interrupt-parent = <&gpio3>;
interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pmic_int_l>;
rockchip,system-power-controller;
wakeup-source;
#clock-cells = <1>;
vcc1-supply = <&vcc_sys>;
vcc2-supply = <&vcc_sys>;
vcc3-supply = <&vcc_sys>;
vcc4-supply = <&vcc_sys>;
vcc6-supply = <&vcc_sys>;
vcc7-supply = <&vcc_sys>;
vcc8-supply = <&vcc_sys>;
vcc9-supply = <&vcc_io>;
regulators {
vdd_arm: DCDC_REG1 {
regulator-name = "vdd_arm";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <1450000>;
regulator-ramp-delay = <6001>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1100000>;
};
};
vdd_logic: DCDC_REG2 {
regulator-name = "vdd_logic";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <1450000>;
regulator-ramp-delay = <6001>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1100000>;
};
};
vcc_ddr: DCDC_REG3 {
regulator-name = "vcc_ddr";
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-on-in-suspend;
};
};
vcc_io: DCDC_REG4 {
regulator-name = "vcc_io";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
rk818_ldo1: LDO_REG1 {
regulator-name = "rk818_ldo1";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>;
};
};
rk818_ldo2: LDO_REG2 {
regulator-name = "rk818_ldo2";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3000000>;
};
};
rk818_ldo3: LDO_REG3 {
regulator-name = "rk818_ldo3";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1100000>;
};
};
rk818_ldo4: LDO_REG4 {
regulator-name = "rk818_ldo4";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <2800000>;
};
};
rk818_ldo5: LDO_REG5 {
regulator-name = "rk818_ldo5";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3000000>;
};
};
rk818_ldo6: LDO_REG6 {
regulator-name = "rk818_ldo6";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1200000>;
};
};
rk818_ldo7: LDO_REG7 {
regulator-name = "rk818_ldo7";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
rk818_ldo8: LDO_REG8 {
regulator-name = "rk818_ldo8";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <1800000>;
};
};
vcc_sd: LDO_REG9 {
regulator-name = "vcc_sd";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-microvolt = <3000000>;
};
};
rk818_ldo10: SWITCH_REG {
regulator-name = "rk818_ldo10";
regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-on-in-suspend;
};
};
};
};
};
&lvds {
status = "disabled";
pinctrl-names = "default";
pinctrl-0 = <&lcdc_lcdc>;
ports {
lvds_out: port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
lvds_out_panel: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_in_lvds>;
};
};
};
};
&pinctrl {
lcdc {
lcdc_lcdc: lcdc-lcdc {
rockchip,pins =
/* depend on the hardware */
<2 RK_PB0 1 &pcfg_pull_none>, /* DCLK */
/* <2 RK_PB1 1 &pcfg_pull_none>, /* HSYNC */
/* <2 RK_PB2 1 &pcfg_pull_none>, /* VSYNC */
<2 RK_PB3 1 &pcfg_pull_none>, /* DEN */
<2 RK_PB4 1 &pcfg_pull_none>, /* DATA10 */
<2 RK_PB5 1 &pcfg_pull_none>, /* DATA11 */
<2 RK_PB6 1 &pcfg_pull_none>, /* DATA12 */
<2 RK_PB7 1 &pcfg_pull_none>, /* DATA13 */
<2 RK_PC0 1 &pcfg_pull_none>, /* DATA14 */
<2 RK_PC1 1 &pcfg_pull_none>, /* DATA15 */
<2 RK_PC2 1 &pcfg_pull_none>, /* DATA16 */
<2 RK_PC3 1 &pcfg_pull_none>; /* DATA17 */
/* <2 RK_PC4 1 &pcfg_pull_none>, /* DATA18 */
/* <2 RK_PC5 1 &pcfg_pull_none>, /* DATA19 */
/* <2 RK_PC6 1 &pcfg_pull_none>, /* DATA20 */
/* <2 RK_PC7 1 &pcfg_pull_none>, /* DATA21 */
/* <2 RK_PD0 1 &pcfg_pull_none>, /* DATA22 */
/* <2 RK_PD1 1 &pcfg_pull_none>; /* DATA23 */
};
};
pmic {
pmic_int_l: pmic-int-l {
rockchip,pins = <RK_GPIO3 22 RK_FUNC_GPIO &pcfg_pull_default>;
};
};
usb2 {
host_vbus_drv: host-vbus-drv {
rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
};
otg_vbus_drv: otg-vbus-drv {
rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
&sdmmc {
cap-mmc-highspeed;
supports-sd;
broken-cd;
card-detect-delay = <800>;
ignore-pm-notify;
keep-power-in-suspend;
cd-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; /* CD GPIO */
status = "disabled";
};
&sdio {
cap-mmc-highspeed;
supports-sdio;
ignore-pm-notify;
keep-power-in-suspend;
non-removable;
cap-sdio-irq;
status = "disabled";
};
&u2phy {
status = "okay";
u2phy_otg: otg-port {
vbus-supply = <&vcc_otg_vbus>;
status = "okay";
};
u2phy_host: host-port {
phy-supply = <&vcc_host_5v>;
status = "okay";
};
};
&usb_host_ehci {
status = "okay";
};
&usb_host_ohci {
status = "okay";
};
&usb_otg {
status = "okay";
};
&vop {
status = "okay";
};
&vop_mmu {
status = "okay";
};
format = "i2s";
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master;
//frame-master;
};
};
};
rockchip-rk610 {
compatible = "rockchip-rk610";
dais {
dai0 {
codec-name = "rk610_codec.0-0060";
cpu-dai-name = "rockchip-i2s.0";
format = "i2s";
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master;
//frame-master;
};
};
};
codec-hdmi-spdif {
compatible = "hdmi-spdif";
};
codec-hdmi-i2s {
compatible = "hdmi-i2s";
};
codec-hdmi-spdif {
compatible = "hdmi-spdif";
};
};
&i2c0 {
status = "okay";
rt5631@1a {
compatible = "rt5631";
reg = <0x1a>;
};
rk610ctl@40 {
compatible = "rk610_ctl";
reg = <0x40>;
rk610-reset-io = <&gpio3 GPIO_B2 GPIO_ACTIVE_HIGH>;
// clocks = <&clk_i2s>;
// clock-names = "i2s_clk";
};
rk610codec@60 {//RK610_CODEC addr from 0x60 to 0x80 (0x60~0x80)
compatible = "rk610_codec";
reg = <0x60>;
spk_ctl_io = <&gpio2 GPIO_D7 GPIO_ACTIVE_HIGH>;
boot_depop = <1>;
pa_enable_time = <1000>;
};
ion {
compatible = "rockchip,ion";
#address-cells = <1>;
#size-cells = <0>;
rockchip,ion-heap@1 { /* CMA HEAP */
compatible = "rockchip,ion-reserve";
reg = <1>;
memory-reservation = <0x00000000 0x04000000>; /* 64MB */
};
rockchip,ion-heap@3 { /* SYSTEM HEAP */
reg = <3>;
};
};
};
&fb {
rockchip,disp-mode = <DUAL>;
};
&rk_screen {
display-timings = <&disp_timings>;
};
&lcdc0 {
status = "okay";
power_ctr: power_ctr {
rockchip,debug = <0>;
rockchip,mirror = <NO_MIRROR>;
/*lcd_en:lcd_en {
rockchip,power_type = <GPIO>;
gpios = <&gpio7 GPIO_A3 GPIO_ACTIVE_HIGH>;
rockchip,delay = <10>;
};
lcd_cs:lcd_cs {
rockchip,power_type = <REGULATOR>;
rockchip,delay = <10>;
};
lcd_rst:lcd_rst {
rockchip,power_type = <GPIO>;
gpios = <&gpio3 GPIO_D6 GPIO_ACTIVE_HIGH>;
rockchip,delay = <5>;
};*/
};
};
&lcdc1 {
status = "disable";
};
&hdmi {
status = "okay";
rockchips,hdmi_audio_source = <0>;
};
;SDMMC_CLKOUT>;
rockchip,pull = <VALUE_PULL_UPDOWN_DISABLE>;
};
sdio0_bus1: sdio0-bus-width1 {
rockchip,pins = <SDMMC_DATA0>;
rockchip,pull = <VALUE_PULL_UPDOWN_DISABLE>;
};
sdio0_bus4: sdio0-bus-width4 {
rockchip,pins = <SDMMC_DATA0>,
<SDMMC_DATA1>,
<SDMMC_DATA2>,
<SDMMC_DATA3>;
rockchip,pull = <VALUE_PULL_UPDOWN_DISABLE>;
};
sdio0_gpio: sdio0_gpio{
rockchip,pins = <GPIO0_D6>, //pwren
<GPIO0_A3>, //cmd
<GPIO1_A0>, //clk
<GPIO1_A1>, //data0
<GPIO1_A2>, //data1
<GPIO1_A4>, //data2
<GPIO1_A5>; //data3
rockchip,pull = <VALUE_PULL_UPDOWN_DISABLE>;
};
};
gpio0_pwm{
pwm0_pin:pwm0 {
rockchip,pins = <PWM0>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
pwm1_pin:pwm1 {
rockchip,pins = <PWM1>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
pwm2_pin:pwm2 {
rockchip,pins = <PWM2>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
pwm3_pin:pwm3 {
rockchip,pins = <PWM_IRIN>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
};
gpio2_gmac {
gmac_rxdv:gmac-rxdv {
rockchip,pins = <GMAC_RXDV>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_txclk:gmac-txclk {
rockchip,pins = <GMAC_TXCLK>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_crs:gmac-crs {
rockchip,pins = <GMAC_CRS>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_rxclk:gmac-rxclk {
rockchip,pins = <GMAC_RXCLK>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_mdio:gmac-mdio {
rockchip,pins = <GMAC_MDIO>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_txen:gmac-txen {
rockchip,pins = <GMAC_TXEN>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_clk:gmac-clk {
rockchip,pins = <GMAC_CLK>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_rxer:gmac-rxer {
rockchip,pins = <GMAC_RXER>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_rxd1:gmac-rxd1 {
rockchip,pins = <GMAC_RXD1>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_rxd0:gmac-rxd0 {
rockchip,pins = <GMAC_RXD0>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_txd1:gmac-txd1 {
rockchip,pins = <GMAC_TXD1>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_txd0:gmac-txd0 {
rockchip,pins = <GMAC_TXD0>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_rxd3:gmac-rxd3 {
rockchip,pins = <GMAC_RXD3>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_rxd2:gmac-rxd2 {
rockchip,pins = <GMAC_RXD2>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_txd2:gmac-txd2 {
rockchip,pins = <GMAC_TXD2>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_txd3:gmac-txd3 {
rockchip,pins = <GMAC_TXD3>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_col:gmac-col {
rockchip,pins = <GMAC_COL>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_col_gpio:gmac-col-gpio {
rockchip,pins = <GPIO2_D0>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
gmac_mdc:gmac-mdc {
rockchip,pins = <GMAC_MDC>;
rockchip,pull = <VALUE_PULL_DEFAULT>;
};
};
gpio2_lcdc0 {
lcdc0_lcdc:lcdc0-lcdc {
rockchip,pins =
<LCDC0_DCLK>,
<LCDC0_DEN>,
<LCDC0_HSYNC>,
<LCDC0_VSYNC>;
rockchip,pull = <VALUE_PULL_DISABLE>;
};
lcdc0_gpio:lcdc0-gpio {
rockchip,pins =
<FUNC_TO_GPIO(LCDC0_DCLK)>,
<FUNC_TO_GPIO(LCDC0_DEN)>,
<FUNC_TO_GPIO(LCDC0_HSYNC)>,
<FUNC_TO_GPIO(LCDC0_VSYNC)>;
rockchip,pull = <VALUE_PULL_DISABLE>;
};
};
gpio2_lcdc0_d {
lcdc0_lcdc_d: lcdc0-lcdc_d {
rockchip,pins =
<LCDC0_D10>,
<LCDC0_D11>,
<LCDC0_D12>,
<LCDC0_D13>,
<LCDC0_D14>,
<LCDC0_D15>,
<LCDC0_D16>,
<LCDC0_D17>;
/*
<LCDC0_D18>,
<LCDC0_D19>,
<LCDC0_D20>,
<LCDC0_D21>,
<LCDC0_D22>,
<LCDC0_D23>;
*/
rockchip,pull = <VALUE_PULL_DISABLE>;
};
lcdc0_lcdc_gpio: lcdc0-lcdc_gpio {
rockchip,pins =
<FUNC_TO_GPIO(LCDC0_D10)>,
<FUNC_TO_GPIO(LCDC0_D11)>,
<FUNC_TO_GPIO(LCDC0_D12)>,
<FUNC_TO_GPIO(LCDC0_D13)>,
<FUNC_TO_GPIO(LCDC0_D14)>,
<FUNC_TO_GPIO(LCDC0_D15)>,
<FUNC_TO_GPIO(LCDC0_D16)>,
<FUNC_TO_GPIO(LCDC0_D17)>;
/*
<FUNC_TO_GPIO(LCDC0_D18)>,
<FUNC_TO_GPIO(LCDC0_D19)>,
<FUNC_TO_GPIO(LCDC0_D20)>,
<FUNC_TO_GPIO(LCDC0_D21)>,
<FUNC_TO_GPIO(LCDC0_D22)>,
<FUNC_TO_GPIO(LCDC0_D23)>;
*/
rockchip,pull = <VALUE_PULL_DOWN>;
};
};
//to add
};
};