arm64: dts: rk3368-android: enable rga
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / boot / dts / rockchip / rk3366-tb.dts
index c25371416611926e3c738b12fc9d392920c189ea..47e2597ba3fa9d67a2c90fe9dcb85db9cb000562 100644 (file)
                };
        };
 
+       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>;
                };
 
                power-key {
-                       gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+                       gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
                        linux,code = <116>;
                        label = "power";
                        gpio-key,wakeup;
                };
        };
 
-       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";
                #clock-cells = <0>;
        };
 
+       vbus_host: vbus-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&host_vbus_drv>;
+               regulator-name = "vbus_host";
+       };
+
        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";
                regulator-always-on;
                regulator-boot-on;
        };
+
+       io-domains {
+               compatible = "rockchip,rk3366-io-voltage-domain";
+               rockchip,grf = <&grf>;
+
+               lcdc-supply = <&vcc_io>;
+               dvpts-supply = <&vcc_18>;
+               wifibt-supply = <&vccio_wl>;
+               audio-supply = <&vcc_io>;
+               sdcard-supply = <&vccio_sd>;
+               tphdsor-supply = <&vcc_io>;
+       };
+
+       dwc_control_usb: dwc-control-usb {
+               compatible = "rockchip,rk3368-dwc-control-usb";
+               rockchip,grf = <&grf>;
+               grf-offset = <0x049c>; /* GRF_SOC_STATUS for USB2.0 OTG */
+               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "otg_id", "otg_bvalid",
+                                 "otg_linestate", "host0_linestate";
+               clocks = <&cru SCLK_USBPHY480M>, <&cru HCLK_OTG>;
+               clock-names = "sclk_otgphy0", "otg";
+
+               usb_bc {
+                       compatible = "inno,phy";
+                       regbase = &dwc_control_usb;
+                       rk_usb,bvalid     = <0x49c 23 1>;
+                       rk_usb,iddig      = <0x49c 26 1>;
+                       rk_usb,vdmsrcen   = <0x718 12 1>;
+                       rk_usb,vdpsrcen   = <0x718 11 1>;
+                       rk_usb,rdmpden    = <0x718 10 1>;
+                       rk_usb,idpsrcen   = <0x718  9 1>;
+                       rk_usb,idmsinken  = <0x718  8 1>;
+                       rk_usb,idpsinken  = <0x718  7 1>;
+                       rk_usb,dpattach   = <0x498 31 1>;
+                       rk_usb,cpdet      = <0x498 30 1>;
+                       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>;
                };
        };
                                };
                        };
                };
+
+               battery {
+                       compatible = "rk818-battery";
+                       ocv_table = <3400 3650 3693 3707 3731 3749 3760
+                                    3770 3782 3796 3812 3829 3852 3882
+                                    3915 3951 3981 4047 4086 4132 4182>;
+                       design_capacity = <7916>;
+                       design_qmax = <8708>;
+                       bat_res = <65>;
+                       max_input_current = <2000>;
+                       max_chrg_current = <1600>;
+                       max_chrg_voltage = <4200>;
+                       sleep_enter_current = <300>;
+                       sleep_exit_current = <300>;
+                       power_off_thresd = <3400>;
+                       zero_algorithm_vol = <3850>;
+                       fb_temperature = <105>;
+                       sample_res = <20>;
+                       max_soc_offset = <60>;
+                       energy_mode = <0>;
+                       monitor_sec = <5>;
+                       virtual_power = <0>;
+                       power_dc2otg = <0>;
+               };
        };
 };
 
 &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";
 };
 
 &rk_screen {
        status = "okay";
-       #include <dt-bindings/display/screen-timing/lcd-b101ew05.dtsi>
+       #include <dt-bindings/display/screen-timing/lcd-tv080wum-mipi.dtsi>
+       /* #include <dt-bindings/display/screen-timing/lcd-b101ew05.dtsi> */
 };
 
 &lvds {
        status = "disabled";
 };
 
+&dsihost0 {
+       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_host {
+       phy-supply = <&vbus_host>;
+};
+
+&dwc_control_usb {
+       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_USBPHY480M>, <&cru HCLK_OTG>;
+       clock-names = "usbphy_480m", "otg";
+       resets = <&cru SRST_USBOTG_AHB>,
+                <&cru SRST_USBOTG_PHY>,
+                <&cru SRST_USBOTG_CON>;
+       reset-names = "otg_ahb", "otg_phy", "otg_controller";
+       /* 0 - Normal, 1 - Force Host, 2 - Force Device */
+       rockchip,usb-mode = <0>;
+       status = "okay";
+};
+
+&scr {
+       status = "disabled";
+};
+
+&cpu0 {
+       cpu-supply = <&syr827>;
+};
+
+&gpu {
+       mali-supply = <&vdd_logic>;
+       status = "okay";
+};
+
+&pvtm {
+       status = "okay";
+};
+
+&pmu_pvtm {
        status = "okay";
 };