arm64: dts: rockchip: add rk3399 box 0505 board support
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / boot / dts / rockchip / rk3366-tb.dts
index 85b1fee3a54ebfd7e99ec8a9eaf216297cbb8eab..3544b15db73f8931c642b247cf589d094085d32d 100644 (file)
@@ -49,7 +49,7 @@
        compatible = "rockchip,tb", "rockchip,rk3366";
 
        chosen {
-               bootargs = "console=uart,mmio32,0xff690000 clk_ignore_unused";
+               bootargs = "console=uart,mmio32,0xff690000";
        };
 
        ion {
                };
        };
 
+       ramoops_mem: ramoops_mem {
+               reg = <0x0 0x100000 0x0 0x100000>;
+               reg-names = "ramoops_mem";
+       };
+
+       ramoops {
+               compatible = "ramoops";
+               record-size = <0x0 0x10000>;
+               console-size = <0x0 0x80000>;
+               ftrace-size = <0x0 0x10000>;
+               pmsg-size = <0x0 0x50000>;
+               memory-region = <&ramoops_mem>;
+       };
+
        backlight: backlight {
                compatible = "pwm-backlight";
                pwms = <&pwm0 0 25000 PWM_POLARITY_INVERTED>;
                };
        };
 
-       sound {
+       rt5640-sound {
                compatible = "simple-audio-card";
                simple-audio-card,format = "i2s";
                simple-audio-card,name = "rockchip,rt5640-codec";
                };
        };
 
+       spdif-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "rockchip,spdif";
+               simple-audio-card,cpu {
+                       sound-dai = <&spdif>;
+               };
+               simple-audio-card,codec {
+                       sound-dai = <&spdif_out>;
+               };
+       };
+
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
        vcc_sys: vcc-sys {
                compatible = "regulator-fixed";
                regulator-name = "vcc_sys";
        vcc_phy: vcc-phy-regulator {
                compatible = "regulator-fixed";
                enable-active-high;
-               gpio = <&gpio0 24 GPIO_ACTIVE_HIGH>;
+               gpio = <&gpio0 25 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&eth_phy_pwr>;
                regulator-name = "vcc_phy";
                        rk_usb,dcpattach  = <0x498 29 1>;
                };
        };
+
+       i2c@2 {
+               compatible = "i2c-gpio";
+               gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>, /* sda */
+                       <&gpio5 16 GPIO_ACTIVE_HIGH>; /* scl */
+               i2c-gpio,delay-us = <2>;        /* ~100 kHz */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c2_gpio>;
+               status = "disabled";
+       };
+
+       i2c@4 {
+               compatible = "i2c-gpio";
+               gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>, /* sda */
+                       <&gpio5 8 GPIO_ACTIVE_HIGH>; /* scl */
+               i2c-gpio,delay-us = <2>;        /* ~100 kHz */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c4_gpio>;
+               status = "okay";
+
+               gt9xx: gt9xx@14 {
+                       compatible = "goodix,gt9xx";
+                       reg = <0x14>;
+                       touch-gpio = <&gpio5 11 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>;
+                       max-x = <1200>;
+                       max-y = <1900>;
+                       tp-size = <911>;
+                       tp-supply = <&vcc_tp>;
+                       status = "okay";
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk818 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+
+               /*
+                * On the module itself this is one of these (depending
+                * on the actual card populated):
+                * - SDIO_RESET_L_WL_REG_ON
+                * - PDN (power down when low)
+                */
+               reset-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; /* GPIO0_B6 */
+       };
+
+       wireless-wlan {
+               compatible = "wlan-platdata";
+               rockchip,grf = <&grf>;
+               wifi_chip_type = "ap6335";
+               sdio_vref = <1800>;
+               WIFI,host_wake_irq = <&gpio3 20 GPIO_ACTIVE_HIGH>; /* GPIO3_c4 */
+               status = "okay";
+       };
+
+       wireless-bluetooth {
+               compatible = "bluetooth-platdata";
+               //wifi-bt-power-toggle;
+               uart_rts_gpios = <&gpio3 11 GPIO_ACTIVE_LOW>; /* GPIO3_b3 */
+               pinctrl-names = "default","rts_gpio";
+               pinctrl-0 = <&uart0_rts>;
+               pinctrl-1 = <&uart0_rts_gpio>;
+               //BT,power_gpio  = <&gpio3 19 GPIO_ACTIVE_HIGH>; /* GPIO3_c3 */
+               BT,reset_gpio    = <&gpio3 19 GPIO_ACTIVE_HIGH>; /* GPIO3_c3 */
+               BT,wake_gpio     = <&gpio3 18 GPIO_ACTIVE_HIGH>; /* GPIO3_c2 */
+               BT,wake_host_irq = <&gpio3 21 GPIO_ACTIVE_HIGH>; /* GPIO3_c5 */
+               status = "okay";
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&nandc0 {
+       status = "okay"; /* enable both for emmc and nand */
 };
 
 &emmc {
 };
 
 &sdio {
-       clock-frequency = <50000000>;
-       clock-freq-min-max = <200000 50000000>;
+       clock-frequency = <37500000>;
+       clock-freq-min-max = <200000 37500000>;
        supports-sdio;
        bus-width = <4>;
        disable-wp;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
        non-removable;
        num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio_bus4 &sdio_cmd &sdio_clk>;
-       status = "disabled";
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+       pinctrl-0 = <&uart0_xfer &uart0_cts>;
 };
 
 &saradc {
 
 &i2c0 {
        status = "okay";
+       i2c-scl-rising-time-ns = <250>;
+       i2c-scl-falling-time-ns = <20>;
 
        syr827: syr827@40 {
                regulator-name = "vdd_arm";
                regulator-always-on;
                regulator-boot-on;
                regulator-initial-state = <3>;
+               regulator-ramp-delay = <2000>;
                regulator-state-mem {
-                       regulator-on-in-suspend;
+                       regulator-off-in-suspend;
                        regulator-suspend-microvolt = <900000>;
                };
        };
 
 &i2c1 {
        status = "okay";
+       i2c-scl-rising-time-ns = <460>;
+       i2c-scl-falling-time-ns = <15>;
 
        rt5640: rt5640@1c {
                #sound-dai-cells = <0>;
        #sound-dai-cells = <0>;
 };
 
+&spdif {
+       status = "okay";
+       #sound-dai-cells = <0>;
+};
+
 &pwm0 {
        status = "okay";
 };
 
+&rga {
+       status = "okay";
+};
+
 &uart2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&hdmi {
+       status = "okay";
+       rockchip,hdmi_video_source = <DISPLAY_SOURCE_LCDC1>;
+       rockchip,phy_table =
+               <148500000 0 0 17 18 18 18>,
+               <297000000 1 1 17 14 14 14>,
+               <594000000 1 1 16 5 5 5>;
+};
+
 &vop_lite {
        status = "okay";
        rockchip,prop = <EXTEND>;
        status = "okay";
 };
 
+&iep_mmu {
+       status = "okay";
+};
+
+&vpu_mmu {
+       status = "okay";
+};
+
+&vdec_mmu {
+       status = "okay";
+};
+
+&iep {
+       status = "okay";
+};
+
+&vpu {
+       status = "okay";
+};
+
+&rkvdec {
+       status = "okay";
+};
+
 &vop_big {
        status = "okay";
        rockchip,prop = <PRMRY>;
 };
 
 &pinctrl {
-        pmic {
-                pmic_int_l: pmic-int-l {
-                        rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>;
-                };
-        };
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifienable-h {
+                       rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wireless-bluetooth {
+               uart0_rts_gpio: uart0-rts-gpios {
+                       rockchip,pins = <3 11 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };
 
 &gmac {
-       phy_regulator = "vcc_phy";
+       phy-supply = <&vcc_phy>;
        phy-mode = "rgmii";
        clock_in_out = "input";
-       snps,reset-gpio = <&gpio2 15 0>;
+       snps,reset-gpio = <&gpio2 15 GPIO_ACTIVE_LOW>;
        snps,reset-active-low;
-       snps,reset-delays-us = <0 10000 1000000>;
+       snps,reset-delays-us = <0 10000 50000>;
        assigned-clocks = <&cru SCLK_MAC>;
        assigned-clock-parents = <&ext_gmac>;
        pinctrl-names = "default";
        pinctrl-0 = <&rgmii_pins>;
-       tx_delay = <0x30>;
-       rx_delay = <0x10>;
+       tx_delay = <0x25>;
+       rx_delay = <0x1d>;
        status = "okay";
 };
 
+&u2phy {
+       vbus_host-gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+};
+
 &dwc_control_usb {
-       host_drv_gpio = <&gpio0 16 GPIO_ACTIVE_LOW>; /* GPIO_C0 = 16 */
        otg_drv_gpio = <&gpio0 10 GPIO_ACTIVE_LOW>; /* GPIO_B2 = 10 */
 
        rockchip,remote_wakeup;
        rockchip,usb_irq_wakeup;
 };
 
+&usb_host0_ehci {
+       assigned-clocks = <&cru SCLK_USBPHY480M>;
+       assigned-clock-parents = <&u2phy>;
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
 &usb_otg {
        clocks = <&cru SCLK_OTG_PHY0>, <&cru HCLK_OTG>;
        clock-names = "sclk_otgphy0", "otg";
        status = "okay";
 };
 
+&scr {
+       status = "disabled";
+};
+
 &cpu0 {
        cpu-supply = <&syr827>;
-};
\ No newline at end of file
+};
+
+&gpu {
+       mali-supply = <&vdd_logic>;
+       status = "okay";
+};