]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge tag 'v4.7-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorOlof Johansson <olof@lixom.net>
Wed, 13 Apr 2016 22:27:33 +0000 (15:27 -0700)
committerOlof Johansson <olof@lixom.net>
Wed, 13 Apr 2016 22:27:33 +0000 (15:27 -0700)
A lot display-controller nodes for DSI and the Analogix DP on rk3288
as well as general display+hdmi support on rk3036. With the Analogix
DP support, Veyron Chromeboks can now finally use their internal
display.

Other than this big improvement we have thermal support on the rk3228,
a long time missing binding document for the General Register Files
block, better operating points for Veyron devices and a bunch of fixes
with parts stemming from warnings that new dtc version can generate.

* tag 'v4.7-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (27 commits)
  ARM: dts: rockchip: move rk3036 memory definition to board files
  ARM: dts: rockchip: enable the eDP on rk3288 veyron devices
  ARM: dts: rockchip: simple panel and backlight supplies on veyron boards
  ARM: dts: rockchip: override edp hpd handling on veyron-pinky and speedy
  ARM: dts: rockchip: add rk3288-veyron-minnie backlight and panel settings
  ARM: dts: rockchip: add rk3288-veyron-jaq backlight and panel overrides
  ARM: dts: rockchip: add core rk3288-veyron backlight and panel nodes
  ARM: dts: rockchip: add startup delay to rk3288-veyron panel-regulators
  ARM: dts: rockchip: move edp-hpd pin definition into common location
  ARM: dts: rockchip: add rk3288 displayport controller node
  ARM: dts: rockchip: add rk3288 edp-phy node
  ARM: dts: rockchip: add missing unitname to cpu_leakage efuse
  ARM: dts: rockchip: drop unneeded properties from mipi node
  ARM: dts: rockchip: clean up gpio-keys nodes
  ARM: dts: rockchip: fix missing usbphy unit-names
  ARM: dts: rockchip: fix rk3288 power-domain unit names
  ARM: dts: rockchip: update rk3288-veyron cpu operating points
  ARM: dts: rockchip: remove broken-cd from emmc and sdio
  ARM: dts: rockchip: enable the tsadc for rk3228 evb
  ARM: dts: rockchip: add the thermal main info found on rk3228
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
23 files changed:
Documentation/devicetree/bindings/soc/rockchip/grf.txt [new file with mode: 0644]
arch/arm/boot/dts/rk3036-evb.dts
arch/arm/boot/dts/rk3036-kylin.dts
arch/arm/boot/dts/rk3036.dtsi
arch/arm/boot/dts/rk3066a-bqcurie2.dts
arch/arm/boot/dts/rk3066a-rayeager.dts
arch/arm/boot/dts/rk3066a.dtsi
arch/arm/boot/dts/rk3188-radxarock.dts
arch/arm/boot/dts/rk3188.dtsi
arch/arm/boot/dts/rk3228-evb.dts
arch/arm/boot/dts/rk3228.dtsi
arch/arm/boot/dts/rk3288-evb.dtsi
arch/arm/boot/dts/rk3288-firefly.dtsi
arch/arm/boot/dts/rk3288-popmetal.dts
arch/arm/boot/dts/rk3288-r89.dts
arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
arch/arm/boot/dts/rk3288-veyron-jaq.dts
arch/arm/boot/dts/rk3288-veyron-jerry.dts
arch/arm/boot/dts/rk3288-veyron-minnie.dts
arch/arm/boot/dts/rk3288-veyron-pinky.dts
arch/arm/boot/dts/rk3288-veyron-speedy.dts
arch/arm/boot/dts/rk3288-veyron.dtsi
arch/arm/boot/dts/rk3288.dtsi

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
new file mode 100644 (file)
index 0000000..013e71a
--- /dev/null
@@ -0,0 +1,35 @@
+* Rockchip General Register Files (GRF)
+
+The general register file will be used to do static set by software, which
+is composed of many registers for system control.
+
+From RK3368 SoCs, the GRF is divided into two sections,
+- GRF, used for general non-secure system,
+- PMUGRF, used for always on system
+
+Required Properties:
+
+- compatible: GRF should be one of the followings
+   - "rockchip,rk3066-grf", "syscon": for rk3066
+   - "rockchip,rk3188-grf", "syscon": for rk3188
+   - "rockchip,rk3228-grf", "syscon": for rk3228
+   - "rockchip,rk3288-grf", "syscon": for rk3288
+   - "rockchip,rk3368-grf", "syscon": for rk3368
+   - "rockchip,rk3399-grf", "syscon": for rk3399
+- compatible: PMUGRF should be one of the followings
+   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
+   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
+- reg: physical base address of the controller and length of memory mapped
+  region.
+
+Example: GRF and PMUGRF of RK3399 SoCs
+
+       pmugrf: syscon@ff320000 {
+               compatible = "rockchip,rk3399-pmugrf", "syscon";
+               reg = <0x0 0xff320000 0x0 0x1000>;
+       };
+
+       grf: syscon@ff770000 {
+               compatible = "rockchip,rk3399-grf", "syscon";
+               reg = <0x0 0xff770000 0x0 0x10000>;
+       };
index b3d6ec87f6152b1e23c0845913990da1c19076a8..8db9e9b197a2875a5846b40c283b5607dabf73b6 100644 (file)
 / {
        model = "Rockchip RK3036 Evaluation board";
        compatible = "rockchip,rk3036-evb", "rockchip,rk3036";
+
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x40000000>;
+       };
 };
 
 &emac {
index 6251d109eff42de9cc5c8ec1784a003fe1eab1c0..1df1557a46c3534832d73c9604b3e8490bca9128 100644 (file)
        model = "Rockchip RK3036 KylinBoard";
        compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
 
+       memory {
+               device_type = "memory";
+               reg = <0x60000000 0x20000000>;
+       };
+
        leds: gpio-leds {
                compatible = "gpio-leds";
 
        status = "okay";
 };
 
+&hdmi {
+       status = "okay";
+};
+
 &i2c1 {
        clock-frequency = <400000>;
 
 &sdio {
        status = "okay";
 
-       broken-cd;
        bus-width = <4>;
        cap-sd-highspeed;
        cap-sdio-irq;
        status = "okay";
 };
 
+&vop {
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
 &pinctrl {
        leds {
                led_ctl: led-ctl {
index d0f4bb7e1e50a4d44aea72b1160c3dc8e739f641..843d2be2e4e912ad2ea19149583c9051b1100590 100644 (file)
                spi = &spi;
        };
 
-       memory {
-               device_type = "memory";
-               reg = <0x60000000 0x40000000>;
-       };
-
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                interrupt-affinity = <&cpu0>, <&cpu1>;
        };
 
+       display-subsystem {
+               compatible = "rockchip,display-subsystem";
+               ports = <&vop_out>;
+       };
+
        timer {
                compatible = "arm,armv7-timer";
                arm,cpu-registers-not-fw-configured;
                };
        };
 
+       vop: vop@10118000 {
+               compatible = "rockchip,rk3036-vop";
+               reg = <0x10118000 0x19c>;
+               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_LCDC>, <&cru SCLK_LCDC>, <&cru HCLK_LCDC>;
+               clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               resets = <&cru SRST_LCDC1_A>, <&cru SRST_LCDC1_H>, <&cru SRST_LCDC1_D>;
+               reset-names = "axi", "ahb", "dclk";
+               iommus = <&vop_mmu>;
+               status = "disabled";
+
+               vop_out: port {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       vop_out_hdmi: endpoint@0 {
+                               reg = <0>;
+                               remote-endpoint = <&hdmi_in_vop>;
+                       };
+               };
+       };
+
+       vop_mmu: iommu@10118300 {
+               compatible = "rockchip,iommu";
+               reg = <0x10118300 0x100>;
+               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vop_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
        gic: interrupt-controller@10139000 {
                compatible = "arm,gic-400";
                interrupt-controller;
                compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
                reg = <0x1021c000 0x4000>;
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
-               broken-cd;
                bus-width = <8>;
                cap-mmc-highspeed;
                clock-frequency = <37500000>;
                status = "disabled";
        };
 
+       hdmi: hdmi@20034000 {
+               compatible = "rockchip,rk3036-inno-hdmi";
+               reg = <0x20034000 0x4000>;
+               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru  PCLK_HDMI>;
+               clock-names = "pclk";
+               rockchip,grf = <&grf>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_ctl>;
+               status = "disabled";
+
+               hdmi_in: port {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       hdmi_in_vop: endpoint@0 {
+                               reg = <0>;
+                               remote-endpoint = <&vop_out_hdmi>;
+                       };
+               };
+       };
+
        timer: timer@20044000 {
                compatible = "rockchip,rk3036-timer", "rockchip,rk3288-timer";
                reg = <0x20044000 0x20>;
                        };
                };
 
+               hdmi {
+                       hdmi_ctl: hdmi-ctl {
+                               rockchip,pins = <1 8  RK_FUNC_1 &pcfg_pull_none>,
+                                               <1 9  RK_FUNC_1 &pcfg_pull_none>,
+                                               <1 10 RK_FUNC_1 &pcfg_pull_none>,
+                                               <1 11 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+
                uart0 {
                        uart0_xfer: uart0-xfer {
                                rockchip,pins = <0 16 RK_FUNC_1 &pcfg_pull_default>,
index 6d2a5b3a84a86635f65b8d43aae475040dc54c4e..bc674ee206ec96ac2e96a92a40dcbc5ea8bba20e 100644 (file)
@@ -42,6 +42,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/input/input.h>
 #include "rk3066a.dtsi"
 
 / {
 
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                autorepeat;
 
-               button@0 {
+               power {
                        gpios = <&gpio6 2 GPIO_ACTIVE_LOW>; /* GPIO6_A2 */
-                       linux,code = <116>;
+                       linux,code = <KEY_POWER>;
                        label = "GPIO Key Power";
                        linux,input-type = <1>;
                        wakeup-source;
                        debounce-interval = <100>;
                };
-               button@1 {
+               volume-down {
                        gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; /* GPIO4_C5 */
-                       linux,code = <104>;
+                       linux,code = <KEY_VOLUMEDOWN>;
                        label = "GPIO Key Vol-";
                        linux,input-type = <1>;
                        debounce-interval = <100>;
index 05533005a809cef3d40731a2f3b4d1477a531d26..6e7f2187a0e3a0774235e0e7e88b96b66195efbb 100644 (file)
@@ -41,6 +41,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/input/input.h>
 #include "rk3066a.dtsi"
 
 / {
 
        keys: gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
-               button@0 {
+               power {
                        wakeup-source;
                        gpios = <&gpio6 2 GPIO_ACTIVE_LOW>;
                        label = "GPIO Power";
-                       linux,code = <116>;
+                       linux,code = <KEY_POWER>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pwr_key>;
                };
 };
 
 &emmc {
-       broken-cd;
        bus-width = <8>;
        cap-mmc-highspeed;
        disable-wp;
 };
 
 &mmc1 {
-       broken-cd;
        bus-width = <4>;
        disable-wp;
        non-removable;
index cb0a552e0b181674365aa0285ae7b92d73dc746b..c0ba86c3a2abf1f1463d6644d12f28cb6870d7cb 100644 (file)
                clocks = <&cru PCLK_EFUSE>;
                clock-names = "pclk_efuse";
 
-               cpu_leakage: cpu_leakage {
+               cpu_leakage: cpu_leakage@17 {
                        reg = <0x17 0x1>;
                };
        };
                #size-cells = <0>;
                status = "disabled";
 
-               usbphy0: usb-phy0 {
+               usbphy0: usb-phy@17c {
                        #phy-cells = <0>;
                        reg = <0x17c>;
                        clocks = <&cru SCLK_OTGPHY0>;
                        #clock-cells = <0>;
                };
 
-               usbphy1: usb-phy1 {
+               usbphy1: usb-phy@188 {
                        #phy-cells = <0>;
                        reg = <0x188>;
                        clocks = <&cru SCLK_OTGPHY1>;
index 0b6924c97b6bf0fd40e6062ac0b279e2edaea7a2..1da46d138029f2bc96b5de213b8f0523ad0784ef 100644 (file)
@@ -41,6 +41,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/input/input.h>
 #include "rk3188.dtsi"
 
 / {
 
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                autorepeat;
 
-               button@0 {
+               power {
                        gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
-                       linux,code = <116>;
+                       linux,code = <KEY_POWER>;
                        label = "GPIO Key Power";
                        linux,input-type = <1>;
                        wakeup-source;
index 9271833958f9dcd506d2b0365671414c4ec72460..31f81b265cefd45222e0c127fc1c38cdaf9d43cd 100644 (file)
                clocks = <&cru PCLK_EFUSE>;
                clock-names = "pclk_efuse";
 
-               cpu_leakage: cpu_leakage {
+               cpu_leakage: cpu_leakage@17 {
                        reg = <0x17 0x1>;
                };
        };
                #size-cells = <0>;
                status = "disabled";
 
-               usbphy0: usb-phy0 {
+               usbphy0: usb-phy@10c {
                        #phy-cells = <0>;
                        reg = <0x10c>;
                        clocks = <&cru SCLK_OTGPHY0>;
                        #clock-cells = <0>;
                };
 
-               usbphy1: usb-phy1 {
+               usbphy1: usb-phy@11c {
                        #phy-cells = <0>;
                        reg = <0x11c>;
                        clocks = <&cru SCLK_OTGPHY1>;
index e3898b8101506b16ed25b3b482fd93c2cac28b05..5956e8246abefe07c93fc3c93ee199619ffdfb34 100644 (file)
@@ -53,7 +53,6 @@
 };
 
 &emmc {
-       broken-cd;
        cap-mmc-highspeed;
        mmc-ddr-1_8v;
        disable-wp;
        status = "okay";
 };
 
+&tsadc {
+       status = "okay";
+
+       rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
+       rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
+};
+
 &uart2 {
        status = "okay";
 };
index 4dae42a015098901626416fe707233d3f1872837..f9c34124ccc3477fdd2e7396389c5e02fa839ca6 100644 (file)
@@ -43,6 +43,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/rockchip.h>
 #include <dt-bindings/clock/rk3228-cru.h>
+#include <dt-bindings/thermal/thermal.h>
 #include "skeleton.dtsi"
 
 / {
@@ -69,6 +70,7 @@
                                /* KHz    uV */
                                 816000 1000000
                        >;
+                       #cooling-cells = <2>; /* min followed by max */
                        clock-latency = <40000>;
                        clocks = <&cru ARMCLK>;
                };
                assigned-clock-rates = <594000000>;
        };
 
+       thermal-zones {
+               cpu_thermal: cpu-thermal {
+                       polling-delay-passive = <100>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&tsadc 0>;
+
+                       trips {
+                               cpu_alert0: cpu_alert0 {
+                                       temperature = <70000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+                               cpu_alert1: cpu_alert1 {
+                                       temperature = <75000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+                               cpu_crit: cpu_crit {
+                                       temperature = <90000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       cooling-device =
+                                               <&cpu0 THERMAL_NO_LIMIT 6>;
+                               };
+                               map1 {
+                                       trip = <&cpu_alert1>;
+                                       cooling-device =
+                                               <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
+       tsadc: tsadc@11150000 {
+               compatible = "rockchip,rk3228-tsadc";
+               reg = <0x11150000 0x100>;
+               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
+               clock-names = "tsadc", "apb_pclk";
+               resets = <&cru SRST_TSADC>;
+               reset-names = "tsadc-apb";
+               pinctrl-names = "init", "default", "sleep";
+               pinctrl-0 = <&otp_gpio>;
+               pinctrl-1 = <&otp_out>;
+               pinctrl-2 = <&otp_gpio>;
+               #thermal-sensor-cells = <0>;
+               rockchip,hw-tshut-temp = <95000>;
+               status = "disabled";
+       };
+
        emmc: dwmmc@30020000 {
                compatible = "rockchip,rk3288-dw-mshc";
                reg = <0x30020000 0x4000>;
                        };
                };
 
+               tsadc {
+                       otp_gpio: otp-gpio {
+                               rockchip,pins = <0 24 RK_FUNC_GPIO &pcfg_pull_none>;
+                       };
+
+                       otp_out: otp-out {
+                               rockchip,pins = <0 24 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+               };
+
                uart0 {
                        uart0_xfer: uart0-xfer {
                                rockchip,pins = <2 26 RK_FUNC_1 &pcfg_pull_none>,
index 78d47f7d2938532d435954c731ba7e99063939c2..963365d1220805899e237240f1b20948387cee5c 100644 (file)
@@ -38,6 +38,7 @@
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3288.dtsi"
 
 
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                autorepeat;
 
                pinctrl-names = "default";
                pinctrl-0 = <&pwrbtn>;
 
-               button@0 {
+               power {
                        gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
-                       linux,code = <116>;
+                       linux,code = <KEY_POWER>;
                        label = "GPIO Key Power";
                        linux,input-type = <1>;
                        wakeup-source;
 };
 
 &emmc {
-       broken-cd;
        bus-width = <8>;
        cap-mmc-highspeed;
        disable-wp;
index 98c586a43c73011f3aba567c784f573b8ab57dab..d6cf9ada13c9a68eaae77e88c55a346d92890ee2 100644 (file)
@@ -40,6 +40,7 @@
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include <dt-bindings/input/input.h>
 #include "rk3288.dtsi"
 
 / {
 
        keys: gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
-               button@0 {
+               power {
                        wakeup-source;
                        gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
                        label = "GPIO Power";
-                       linux,code = <116>;
+                       linux,code = <KEY_POWER>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pwr_key>;
                };
 };
 
 &emmc {
-       broken-cd;
        bus-width = <8>;
        cap-mmc-highspeed;
        disable-wp;
 };
 
 &sdio0 {
-       broken-cd;
        bus-width = <4>;
        disable-wp;
        non-removable;
index 2ff9689d2e1b831c26f8e5660ee910ad2c18e6c6..720717bb361480a4d3f0b27bfb03426c13a440bf 100644 (file)
@@ -41,7 +41,7 @@
  */
 
 /dts-v1/;
-
+#include <dt-bindings/input/input.h>
 #include "rk3288.dtsi"
 
 / {
 
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                autorepeat;
 
                pinctrl-names = "default";
                pinctrl-0 = <&pwrbtn>;
 
-               button@0 {
+               power {
                        gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
-                       linux,code = <116>;
+                       linux,code = <KEY_POWER>;
                        label = "GPIO Key Power";
                        linux,input-type = <1>;
                        wakeup-source;
 };
 
 &emmc {
-       broken-cd;
        bus-width = <8>;
        cap-mmc-highspeed;
        disable-wp;
index 510a1d0d7abb5b4022c4e2b7500d9049540a1ec3..4b8a8adb243c3e00a2b3159f25759eb293710367 100644 (file)
@@ -41,6 +41,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3288.dtsi"
 
 
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                autorepeat;
 
                pinctrl-names = "default";
                pinctrl-0 = <&pwrbtn>;
 
-               button@0 {
+               power {
                        gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
-                       linux,code = <116>;
+                       linux,code = <KEY_POWER>;
                        label = "GPIO Key Power";
                        linux,input-type = <1>;
                        wakeup-source;
index 610769d99522ea47e1765282469b797d378dc5c8..2958c36d12a0e229ec050d507b36cfdedd12c2cf 100644 (file)
                i2c20 = &i2c_tunnel;
        };
 
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <
+                         0   1   2   3   4   5   6   7
+                         8   9  10  11  12  13  14  15
+                        16  17  18  19  20  21  22  23
+                        24  25  26  27  28  29  30  31
+                        32  33  34  35  36  37  38  39
+                        40  41  42  43  44  45  46  47
+                        48  49  50  51  52  53  54  55
+                        56  57  58  59  60  61  62  63
+                        64  65  66  67  68  69  70  71
+                        72  73  74  75  76  77  78  79
+                        80  81  82  83  84  85  86  87
+                        88  89  90  91  92  93  94  95
+                        96  97  98  99 100 101 102 103
+                       104 105 106 107 108 109 110 111
+                       112 113 114 115 116 117 118 119
+                       120 121 122 123 124 125 126 127
+                       128 129 130 131 132 133 134 135
+                       136 137 138 139 140 141 142 143
+                       144 145 146 147 148 149 150 151
+                       152 153 154 155 156 157 158 159
+                       160 161 162 163 164 165 166 167
+                       168 169 170 171 172 173 174 175
+                       176 177 178 179 180 181 182 183
+                       184 185 186 187 188 189 190 191
+                       192 193 194 195 196 197 198 199
+                       200 201 202 203 204 205 206 207
+                       208 209 210 211 212 213 214 215
+                       216 217 218 219 220 221 222 223
+                       224 225 226 227 228 229 230 231
+                       232 233 234 235 236 237 238 239
+                       240 241 242 243 244 245 246 247
+                       248 249 250 251 252 253 254 255>;
+               default-brightness-level = <128>;
+               enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
+               backlight-boot-off;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bl_en>;
+               pwms = <&pwm0 0 1000000 0>;
+               pwm-delay-us = <10000>;
+       };
+
        gpio-charger {
                compatible = "gpio-charger";
                charger-type = "mains";
                pinctrl-0 = <&ac_present_ap>;
        };
 
+       panel: panel {
+               compatible ="innolux,n116bge", "simple-panel";
+               status = "okay";
+               power-supply = <&vcc33_lcd>;
+               backlight = <&backlight>;
+
+               ports {
+                       panel_in: port {
+                               panel_in_edp: endpoint {
+                                       remote-endpoint = <&edp_out_panel>;
+                               };
+                       };
+               };
+       };
+
        /* A non-regulated voltage from power supply or battery */
        vccsys: vccsys {
                compatible = "regulator-fixed";
        };
 };
 
+&edp {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&edp_hpd>;
+
+       ports {
+               edp_out: port@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       edp_out_panel: endpoint {
+                               reg = <0>;
+                               remote-endpoint = <&panel_in_edp>;
+                       };
+               };
+       };
+};
+
+&edp_phy {
+       status = "okay";
+};
+
 &gpio_keys {
        pinctrl-0 = <&pwr_key_l &ap_lid_int_l>;
        lid {
        };
 };
 
+&pwm0 {
+       status = "okay";
+};
+
 &rk808 {
        vcc11-supply = <&vcc_5v>;
 
        };
 };
 
+&vopl {
+       status = "okay";
+};
+
+&vopl_mmu {
+       status = "okay";
+};
+
 &pinctrl {
        pinctrl-0 = <
                /* Common for sleep and wake, but no owners */
                &suspend_l_sleep
        >;
 
+       backlight {
+               bl_en: bl-en {
+                       rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        buttons {
                ap_lid_int_l: ap-lid-int-l {
                        rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
index c2f52cfb4d06f75f9afe537b8c6a2e518ff726e3..3748abf562b1b2ba75137879a260d700504b1678 100644 (file)
@@ -61,6 +61,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&lcd_enable_h>;
                regulator-name = "panel_regulator";
+               startup-delay-us = <100000>;
                vin-supply = <&vcc33_sys>;
        };
 
        };
 };
 
+&backlight {
+       /* Jaq panel PWM must be >= 3%, so start non-zero brightness at 8 */
+       brightness-levels = <
+                 0
+                 8   9  10  11  12  13  14  15
+                16  17  18  19  20  21  22  23
+                24  25  26  27  28  29  30  31
+                32  33  34  35  36  37  38  39
+                40  41  42  43  44  45  46  47
+                48  49  50  51  52  53  54  55
+                56  57  58  59  60  61  62  63
+                64  65  66  67  68  69  70  71
+                72  73  74  75  76  77  78  79
+                80  81  82  83  84  85  86  87
+                88  89  90  91  92  93  94  95
+                96  97  98  99 100 101 102 103
+               104 105 106 107 108 109 110 111
+               112 113 114 115 116 117 118 119
+               120 121 122 123 124 125 126 127
+               128 129 130 131 132 133 134 135
+               136 137 138 139 140 141 142 143
+               144 145 146 147 148 149 150 151
+               152 153 154 155 156 157 158 159
+               160 161 162 163 164 165 166 167
+               168 169 170 171 172 173 174 175
+               176 177 178 179 180 181 182 183
+               184 185 186 187 188 189 190 191
+               192 193 194 195 196 197 198 199
+               200 201 202 203 204 205 206 207
+               208 209 210 211 212 213 214 215
+               216 217 218 219 220 221 222 223
+               224 225 226 227 228 229 230 231
+               232 233 234 235 236 237 238 239
+               240 241 242 243 244 245 246 247
+               248 249 250 251 252 253 254 255>;
+       power-supply = <&backlight_regulator>;
+};
+
+&panel {
+       power-supply = <&panel_regulator>;
+};
+
 &rk808 {
        pinctrl-names = "default";
        pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
                };
        };
 
-       edp {
-               edp_hpd: edp_hpd {
-                       rockchip,pins = <7 11 RK_FUNC_2 &pcfg_pull_down>;
-               };
-       };
-
        hdmi {
                vcc50_hdmi_en: vcc50-hdmi-en {
                        rockchip,pins = <5 19 RK_FUNC_GPIO &pcfg_pull_none>;
index 60bd6e91e30808b9792ae45d2762a23685317650..f6b2eaaebb9ab90bcca8fc8d46d3800830a4cd32 100644 (file)
@@ -60,6 +60,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&lcd_enable_h>;
                regulator-name = "panel_regulator";
+               startup-delay-us = <100000>;
                vin-supply = <&vcc33_sys>;
        };
 
        };
 };
 
+&backlight {
+       power-supply = <&backlight_regulator>;
+};
+
+&panel {
+       power-supply= <&panel_regulator>;
+};
+
 &rk808 {
        pinctrl-names = "default";
        pinctrl-0 = <&pmic_int_l>;
index 699beb0a9481b54b30eabe75a6b95008ced1bacb..f72d616d1bf8dbd1739472f9e5f04656883eecdd 100644 (file)
@@ -70,6 +70,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&lcd_enable_h>;
                regulator-name = "panel_regulator";
+               startup-delay-us = <100000>;
                vin-supply = <&vcc33_sys>;
        };
 
        };
 };
 
+&backlight {
+       /* Minnie panel PWM must be >= 1%, so start non-zero brightness at 3 */
+       brightness-levels = <
+                         0   3   4   5   6   7
+                         8   9  10  11  12  13  14  15
+                        16  17  18  19  20  21  22  23
+                        24  25  26  27  28  29  30  31
+                        32  33  34  35  36  37  38  39
+                        40  41  42  43  44  45  46  47
+                        48  49  50  51  52  53  54  55
+                        56  57  58  59  60  61  62  63
+                        64  65  66  67  68  69  70  71
+                        72  73  74  75  76  77  78  79
+                        80  81  82  83  84  85  86  87
+                        88  89  90  91  92  93  94  95
+                        96  97  98  99 100 101 102 103
+                       104 105 106 107 108 109 110 111
+                       112 113 114 115 116 117 118 119
+                       120 121 122 123 124 125 126 127
+                       128 129 130 131 132 133 134 135
+                       136 137 138 139 140 141 142 143
+                       144 145 146 147 148 149 150 151
+                       152 153 154 155 156 157 158 159
+                       160 161 162 163 164 165 166 167
+                       168 169 170 171 172 173 174 175
+                       176 177 178 179 180 181 182 183
+                       184 185 186 187 188 189 190 191
+                       192 193 194 195 196 197 198 199
+                       200 201 202 203 204 205 206 207
+                       208 209 210 211 212 213 214 215
+                       216 217 218 219 220 221 222 223
+                       224 225 226 227 228 229 230 231
+                       232 233 234 235 236 237 238 239
+                       240 241 242 243 244 245 246 247
+                       248 249 250 251 252 253 254 255>;
+       power-supply = <&backlight_regulator>;
+};
+
 &emmc {
        /delete-property/mmc-hs200-1_8v;
 };
        };
 };
 
+&panel {
+       compatible = "auo,b101ean01", "simple-panel";
+       power-supply= <&panel_regulator>;
+};
+
 &rk808 {
        pinctrl-names = "default";
        pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
index 94b56e33d947ff84ecdcba0b70e5a2aa001436a8..d44351ec2333193491a229d717b3cc6776936ca9 100644 (file)
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8 &emmc_reset>;
 };
 
+&edp {
+       /delete-property/pinctrl-names;
+       /delete-property/pinctrl-0;
+
+       force-hpd;
+};
+
 &gpio_keys {
        pinctrl-0 = <&pwr_key_h &ap_lid_int_l>;
 
index b34a7b5b3f62e04db16b1fd74d76f2c045775fc1..a0d033f6fe5268fb4d087691c5c99cafba8d176b 100644 (file)
@@ -61,6 +61,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&lcd_enable_h>;
                regulator-name = "panel_regulator";
+               startup-delay-us = <100000>;
                vin-supply = <&vcc33_sys>;
        };
 
        };
 };
 
+&backlight {
+       power-supply = <&backlight_regulator>;
+};
+
 &cpu_alert0 {
        temperature = <65000>;
 };
        temperature = <70000>;
 };
 
+&edp {
+       /delete-property/pinctrl-names;
+       /delete-property/pinctrl-0;
+
+       force-hpd;
+};
+
+&panel {
+       power-supply= <&panel_regulator>;
+};
+
 &rk808 {
        pinctrl-names = "default";
        pinctrl-0 = <&pmic_int_l>;
index 412809c60d01901087f67ed1107f2538ae3a8f1b..b2557bf5a58fae1cd9d0c1c29b487ba6e48049ca 100644 (file)
 
 &cpu0 {
        cpu0-supply = <&vdd_cpu>;
+       operating-points = <
+               /* KHz    uV */
+               1800000 1400000
+               1704000 1350000
+               1608000 1300000
+               1512000 1250000
+               1416000 1200000
+               1200000 1100000
+               1008000 1050000
+                816000 1000000
+                696000  950000
+                600000  900000
+                408000  900000
+                216000  900000
+                126000  900000
+       >;
 };
 
 &emmc {
        status = "okay";
 
-       broken-cd;
        bus-width = <8>;
        cap-mmc-highspeed;
        rockchip,default-sample-phase = <158>;
 &sdio0 {
        status = "okay";
 
-       broken-cd;
        bus-width = <4>;
        cap-sd-highspeed;
        cap-sdio-irq;
index 31f7e20ef418d07197d60ae6e3706b69423da385..3071e94e86ed8bfdb2359f08ce839fb59bc77f83 100644 (file)
                #clock-cells = <0>;
        };
 
+       edp_phy: edp-phy {
+               compatible = "rockchip,rk3288-dp-phy";
+               clocks = <&cru SCLK_EDP_24M>;
+               clock-names = "24m";
+               rockchip,grf = <&grf>;
+               #phy-cells = <0>;
+               status = "disabled";
+       };
+
        timer {
                compatible = "arm,armv7-timer";
                arm,cpu-registers-not-fw-configured;
                         *      *_HDMI          HDMI
                         *      *_MIPI_*        MIPI
                         */
-                       pd_vio {
+                       pd_vio@RK3288_PD_VIO {
                                reg = <RK3288_PD_VIO>;
                                clocks = <&cru ACLK_IEP>,
                                         <&cru ACLK_ISP>,
                         * Note: The following 3 are HEVC(H.265) clocks,
                         * and on the ACLK_HEVC_NIU (NOC).
                         */
-                       pd_hevc {
+                       pd_hevc@RK3288_PD_HEVC {
                                reg = <RK3288_PD_HEVC>;
                                clocks = <&cru ACLK_HEVC>,
                                         <&cru SCLK_HEVC_CABAC>,
                         * (video endecoder & decoder) clocks that on the
                         * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
                         */
-                       pd_video {
+                       pd_video@RK3288_PD_VIDEO {
                                reg = <RK3288_PD_VIDEO>;
                                clocks = <&cru ACLK_VCODEC>,
                                         <&cru HCLK_VCODEC>;
                         * Note: ACLK_GPU is the GPU clock,
                         * and on the ACLK_GPU_NIU (NOC).
                         */
-                       pd_gpu {
+                       pd_gpu@RK3288_PD_GPU {
                                reg = <RK3288_PD_GPU>;
                                clocks = <&cru ACLK_GPU>;
                        };
                clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
                dmas = <&dmac_bus_s 3>;
                dma-names = "tx";
-               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&spdif_tx>;
                rockchip,grf = <&grf>;
        i2s: i2s@ff890000 {
                compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
                reg = <0xff890000 0x10000>;
-               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
                dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
                                reg = <0>;
                                remote-endpoint = <&hdmi_in_vopb>;
                        };
+
+                       vopb_out_edp: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&edp_in_vopb>;
+                       };
+
                        vopb_out_mipi: endpoint@2 {
                                reg = <2>;
                                remote-endpoint = <&mipi_in_vopb>;
                                reg = <0>;
                                remote-endpoint = <&hdmi_in_vopl>;
                        };
+
+                       vopl_out_edp: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&edp_in_vopl>;
+                       };
+
                        vopl_out_mipi: endpoint@2 {
                                reg = <2>;
                                remote-endpoint = <&mipi_in_vopl>;
        mipi_dsi: mipi@ff960000 {
                compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi";
                reg = <0xff960000 0x4000>;
-               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
                clock-names = "ref", "pclk";
+               power-domains = <&power RK3288_PD_VIO>;
                rockchip,grf = <&grf>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
 
                ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-
                        mipi_in: port {
                                #address-cells = <1>;
                                #size-cells = <0>;
                };
        };
 
+       edp: dp@ff970000 {
+               compatible = "rockchip,rk3288-dp";
+               reg = <0xff970000 0x4000>;
+               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_EDP>, <&cru PCLK_EDP_CTRL>;
+               clock-names = "dp", "pclk";
+               phys = <&edp_phy>;
+               phy-names = "dp";
+               resets = <&cru SRST_EDP>;
+               reset-names = "dp";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       edp_in: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               edp_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_edp>;
+                               };
+                               edp_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_edp>;
+                               };
+                       };
+               };
+       };
+
        hdmi: hdmi@ff980000 {
                compatible = "rockchip,rk3288-dw-hdmi";
                reg = <0xff980000 0x20000>;
                #size-cells = <0>;
                status = "disabled";
 
-               usbphy0: usb-phy0 {
+               usbphy0: usb-phy@320 {
                        #phy-cells = <0>;
                        reg = <0x320>;
                        clocks = <&cru SCLK_OTGPHY0>;
                        #clock-cells = <0>;
                };
 
-               usbphy1: usb-phy1 {
+               usbphy1: usb-phy@334 {
                        #phy-cells = <0>;
                        reg = <0x334>;
                        clocks = <&cru SCLK_OTGPHY1>;
                        #clock-cells = <0>;
                };
 
-               usbphy2: usb-phy2 {
+               usbphy2: usb-phy@348 {
                        #phy-cells = <0>;
                        reg = <0x348>;
                        clocks = <&cru SCLK_OTGPHY2>;
                        };
                };
 
+               edp {
+                       edp_hpd: edp-hpd {
+                               rockchip,pins = <7 11 RK_FUNC_2 &pcfg_pull_down>;
+                       };
+               };
+
                i2c0 {
                        i2c0_xfer: i2c0-xfer {
                                rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,