arm: dts: rk3288-evb: add ion support
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / rk3288-evb.dtsi
index e5fbc681631fb206441a0656276e04f0efa2f13f..41b8eae3304cf3ef1e80d7d9ab5492551928cb60 100644 (file)
@@ -1,4 +1,6 @@
 /*
+ * Copyright (c) 2015~2017 Fuzhou Rockchip Electronics Co., Ltd
+ *
  * 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
  */
 
 #include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/input/input.h>
 #include "rk3288.dtsi"
 
 / {
-       memory {
-               device_type = "memory";
-               reg = <0x0 0x80000000>;
+       chosen {
+               bootargs = "earlycon=uart8250,mmio32,0xff690000 swiotlb=1";
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               drm_logo: drm-logo@00000000 {
+                       compatible = "rockchip,drm-logo";
+                       reg = <0x0 0x0>;
+               };
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x0 0x2000000>;
+                       linux,cma-default;
+               };
+       };
+
+       ion {
+               compatible = "rockchip,ion";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cma-heap {
+                       reg = <0x00000000 0x2000000>;
+               };
+
+               system-heap {
+               };
        };
 
        backlight: backlight {
                pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>;
        };
 
+       rk_key: rockchip-key {
+               compatible = "rockchip,key";
+               status = "okay";
+
+               io-channels = <&saradc 1>;
+
+               vol-up-key {
+                       linux,code = <115>;
+                       label = "volume up";
+                       rockchip,adc_value = <1>;
+               };
+
+               vol-down-key {
+                       linux,code = <114>;
+                       label = "volume down";
+                       rockchip,adc_value = <170>;
+               };
+
+               power-key {
+                       gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <116>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pwrbtn>;
+                       label = "power";
+                       gpio-key,wakeup;
+               };
+
+               menu-key {
+                       linux,code = <59>;
+                       label = "menu";
+                       rockchip,adc_value = <355>;
+               };
+
+               home-key {
+                       linux,code = <102>;
+                       label = "home";
+                       rockchip,adc_value = <746>;
+               };
+
+               back-key {
+                       linux,code = <158>;
+                       label = "back";
+                       rockchip,adc_value = <560>;
+               };
+
+               camera-key {
+                       linux,code = <212>;
+                       label = "camera";
+                       rockchip,adc_value = <450>;
+               };
+       };
+
        panel: panel {
                compatible ="lg,lp079qx1-sp0v", "simple-panel";
                backlight = <&backlight>;
                #clock-cells = <0>;
        };
 
-       gpio-keys {
-               compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               autorepeat;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&pwrbtn>;
-
-               button@0 {
-                       gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
-                       linux,code = <116>;
-                       label = "GPIO Key Power";
-                       linux,input-type = <1>;
-                       gpio-key,wakeup = <1>;
-                       debounce-interval = <100>;
-               };
+       vccadc_ref: vccadc-ref {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
        };
 
        /* This turns on USB vbus for both host0 (ehci) and host1 (dwc2) */
         */
        vcc_sd: sdmmc-regulator {
                compatible = "regulator-fixed";
-               gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&sdmmc_pwr>;
                regulator-name = "vcc_sd";
                vin-supply = <&vcc_io>;
        };
 
-       io-domains {
-               compatible = "rockchip,rk3288-io-voltage-domain";
-               rockchip,grf = <&grf>;
-               sdcard-supply = <&vccio_sd>;
-               wifi-supply = <&vcc_18>;
+       wireless-bluetooth {
+               compatible = "bluetooth-platdata";
+               uart_rts_gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default", "rts_gpio";
+               pinctrl-0 = <&uart0_rts>;
+               pinctrl-1 = <&uart0_gpios>;
+               BT,reset_gpio    = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               BT,wake_gpio     = <&gpio4 26 GPIO_ACTIVE_HIGH>;
+               BT,wake_host_irq = <&gpio4 31 GPIO_ACTIVE_HIGH>;
+               status = "okay";
        };
 
        wireless-wlan {
        status = "okay";
 };
 
+&gmac {
+       phy-supply = <&vcc_phy>;
+       phy-mode = "rgmii";
+       clock_in_out = "input";
+       snps,reset-gpio = <&gpio4 7 0>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 1000000>;
+       assigned-clocks = <&cru SCLK_MAC>;
+       assigned-clock-parents = <&ext_gmac>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii_pins>;
+       tx_delay = <0x30>;
+       rx_delay = <0x10>;
+       status = "okay";
+};
+
 &hdmi {
        #address-cells = <1>;
        #size-cells = <0>;
        #sound-dai-cells = <0>;
-       ddc-i2c-bus = <&i2c5>;
+       status = "okay";
+
+       /* Don't use vopl for HDMI */
+       ports {
+               hdmi_in: port {
+                       /delete-node/ endpoint@1;
+               };
+       };
+};
+
+&saradc {
+       vref-supply = <&vccadc_ref>;
        status = "okay";
 };
 
        status = "okay";
        vmmc-supply = <&vcc_sd>;
        vqmmc-supply = <&vccio_sd>;
-};
-
-&gmac {
-       phy-supply = <&vcc_phy>;
-       phy-mode = "rgmii";
-       clock_in_out = "input";
-       snps,reset-gpio = <&gpio4 7 0>;
-       snps,reset-active-low;
-       snps,reset-delays-us = <0 10000 1000000>;
-       assigned-clocks = <&cru SCLK_MAC>;
-       assigned-clock-parents = <&ext_gmac>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&rgmii_pins>;
-       tx_delay = <0x30>;
-       rx_delay = <0x10>;
-       status = "ok";
+       supports-sd;
 };
 
 &edp_phy {
        status = "okay";
 
        ports {
+               /* Don't use vopb for eDP */
+               edp_in: port@0 {
+                       /delete-node/ endpoint@0;
+               };
+
                edp_out: port@1 {
                        reg = <1>;
                        #address-cells = <1>;
        };
 };
 
+&hevc_service {
+       status = "okay";
+};
+
 &i2c0 {
        status = "okay";
 };
        };
 };
 
-&i2c5 {
+&i2c4 {
        status = "okay";
+
+       gsl3673@40 {
+               compatible = "GSL,GSL3673";
+               reg = <0x40>;
+               screen_max_x = <1536>;
+               screen_max_y = <2048>;
+               irq_gpio_number = <&gpio7 6 IRQ_TYPE_LEVEL_LOW>;
+               rst_gpio_number = <&gpio7 5 GPIO_ACTIVE_HIGH>;
+               status = "okay";
+       };
 };
 
 &i2s {
        status = "okay";
 };
 
+&io_domains {
+       status = "okay";
+
+       sdcard-supply = <&vccio_sd>;
+       wifi-supply = <&vcc_18>;
+};
+
 &wdt {
        status = "okay";
 };
        status = "okay";
 };
 
+&rga {
+       status = "okay";
+};
+
 &sdio0 {
        status = "okay";
 
 };
 
 &uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer &uart0_cts>;
        status = "okay";
 };
 
-&uart1 {
+&uart2 {
        status = "okay";
 };
 
-&uart2 {
+&vpu_service {
        status = "okay";
 };
 
-&uart3 {
+&tsadc {
+       rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
+       rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
        status = "okay";
 };
 
-&uart4 {
+&usbphy {
        status = "okay";
 };
 
-&vpu {
+&usb_host0_ehci {
        status = "okay";
 };
 
-&tsadc {
-       rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
-       rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
+&usb_host1 {
+       status = "okay";
+};
+
+&usb_otg {
+       status = "okay";
+};
+
+&lvds {
+       rockchip,data-mapping = "jeida";
+       rockchip,data-width = <24>;
+       rockchip,output = "lvds";
+       rockchip,panel = <&lvds_panel>;
+       status = "disabled";
+};
+
+&vopb {
+       status = "okay";
+
+       /* Don't use vopb for eDP, save it for HDMI */
+       vopb_out: port {
+               /delete-node/ endpoint@1;
+       };
+};
+
+&vopb_mmu {
+       status = "okay";
+};
+
+&vopl {
+       status = "okay";
+
+       /* Don't use vopb for HDMI, save it for eDP */
+       vopl_out: port {
+               /delete-node/ endpoint@0;
+       };
+};
+
+&vopl_mmu {
        status = "okay";
 };
 
                        rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
-};
 
-&usbphy {
-       status = "okay";
-};
-
-&usb_host0_ehci {
-       status = "okay";
-};
-
-&usb_host1 {
-       status = "okay";
-};
-
-&lvds {
-       rockchip,data-mapping = "jeida";
-       rockchip,data-width = <24>;
-       rockchip,output = "lvds";
-       rockchip,panel = <&lvds_panel>;
-       status = "disabled";
-};
-
-&vopb {
-       status = "okay";
-};
-
-&vopb_mmu {
-       status = "okay";
-};
-
-&vopl {
-       status = "okay";
-};
-
-&vopl_mmu {
-       status = "okay";
+       wireless-bluetooth {
+               uart0_gpios: uart0-gpios {
+                       rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };