Merge branch 'master' of git://git.denx.de/u-boot-spi
[platform/kernel/u-boot.git] / arch / arm / dts / r8a7790-lager.dts
index 0230b42..50312e7 100644 (file)
@@ -1,11 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Device Tree Source for the Lager board
  *
  * Copyright (C) 2013-2014 Renesas Solutions Corp.
  * Copyright (C) 2014 Cogent Embedded, Inc.
  * Copyright (C) 2015-2016 Renesas Electronics Corporation
- *
- * SPDX-License-Identifier:    GPL-2.0
  */
 
 /*
                serial0 = &scif0;
                serial1 = &scifa1;
                i2c8 = &gpioi2c1;
+               i2c9 = &gpioi2c2;
                i2c10 = &i2cexio0;
                i2c11 = &i2cexio1;
+               i2c12 = &i2chdmi;
+               i2c13 = &i2cpwr;
        };
 
        chosen {
                };
        };
 
+       cec_clock: cec-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12000000>;
+       };
+
        hdmi-out {
                compatible = "hdmi-connector";
                type = "a";
                #size-cells = <0>;
                compatible = "i2c-gpio";
                status = "disabled";
-               gpios = <&gpio1 17 GPIO_ACTIVE_HIGH /* sda */
-                        &gpio1 16 GPIO_ACTIVE_HIGH /* scl */
-                       >;
+               scl-gpios = <&gpio1 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&gpio1 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <5>;
+       };
+
+       gpioi2c2: i2c-9 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "i2c-gpio";
+               status = "disabled";
+               scl-gpios = <&gpio5 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&gpio5 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                i2c-gpio,delay-us = <5>;
        };
 
                #address-cells = <1>;
                #size-cells = <0>;
        };
+
+        /*
+         * IIC2 and I2C2 may be switched using pinmux.
+         * A fallback to GPIO is also provided.
+         */
+       i2chdmi: i2c-12 {
+               compatible = "i2c-demux-pinctrl";
+               i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>;
+               i2c-bus-name = "i2c-hdmi";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ak4643: codec@12 {
+                       compatible = "asahi-kasei,ak4643";
+                       #sound-dai-cells = <0>;
+                       reg = <0x12>;
+               };
+
+               composite-in@20 {
+                       compatible = "adi,adv7180";
+                       reg = <0x20>;
+                       remote = <&vin1>;
+
+                       port {
+                               adv7180: endpoint {
+                                       bus-width = <8>;
+                                       remote-endpoint = <&vin1ep0>;
+                               };
+                       };
+               };
+
+               hdmi@39 {
+                       compatible = "adi,adv7511w";
+                       reg = <0x39>;
+                       interrupt-parent = <&gpio1>;
+                       interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&cec_clock>;
+                       clock-names = "cec";
+
+                       adi,input-depth = <8>;
+                       adi,input-colorspace = "rgb";
+                       adi,input-clock = "1x";
+                       adi,input-style = <1>;
+                       adi,input-justification = "evenly";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       adv7511_in: endpoint {
+                                               remote-endpoint = <&lvds0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       adv7511_out: endpoint {
+                                               remote-endpoint = <&hdmi_con_out>;
+                                       };
+                               };
+                       };
+               };
+
+               hdmi-in@4c {
+                       compatible = "adi,adv7612";
+                       reg = <0x4c>;
+                       interrupt-parent = <&gpio1>;
+                       interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
+                       default-input = <0>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       adv7612_in: endpoint {
+                                               remote-endpoint = <&hdmi_con_in>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       adv7612_out: endpoint {
+                                               remote-endpoint = <&vin0ep2>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       /*
+        * IIC3 and I2C3 may be switched using pinmux.
+        * IIC3/I2C3 does not appear to support fallback to GPIO.
+        */
+       i2cpwr: i2c-13 {
+               compatible = "i2c-demux-pinctrl";
+               i2c-parent = <&iic3>, <&i2c3>;
+               i2c-bus-name = "i2c-pwr";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmic@58 {
+                       compatible = "dlg,da9063";
+                       reg = <0x58>;
+                       interrupt-parent = <&irqc0>;
+                       interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+                       interrupt-controller;
+
+                       rtc {
+                               compatible = "dlg,da9063-rtc";
+                       };
+
+                       wdt {
+                               compatible = "dlg,da9063-watchdog";
+                       };
+               };
+
+               vdd_dvfs: regulator@68 {
+                       compatible = "dlg,da9210";
+                       reg = <0x68>;
+                       interrupt-parent = <&irqc0>;
+                       interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+       };
 };
 
 &du {
        status = "okay";
 
        clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 722>,
-                <&cpg CPG_MOD 726>, <&cpg CPG_MOD 725>,
                 <&x13_clk>, <&x2_clk>;
-       clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1",
-                     "dclkin.0", "dclkin.1";
+       clock-names = "du.0", "du.1", "du.2", "dclkin.0", "dclkin.1";
 
        ports {
                port@0 {
                                remote-endpoint = <&adv7123_in>;
                        };
                };
+       };
+};
+
+&lvds0 {
+       status = "okay";
+
+       ports {
                port@1 {
                        endpoint {
                                remote-endpoint = <&adv7511_in>;
                        };
                };
-               port@2 {
+       };
+};
+
+&lvds1 {
+       status = "okay";
+
+       ports {
+               port@1 {
                        lvds_connector: endpoint {
                        };
                };
                function = "iic1";
        };
 
+       i2c2_pins: i2c2 {
+               groups = "i2c2";
+               function = "i2c2";
+       };
+
        iic2_pins: iic2 {
                groups = "iic2";
                function = "iic2";
        };
 
+       i2c3_pins: i2c3 {
+               groups = "i2c3";
+               function = "i2c3";
+       };
+
        iic3_pins: iic3 {
                groups = "iic3";
                function = "iic3";
        pinctrl-names = "i2c-exio1";
 };
 
-&iic2  {
-       status = "okay";
-       pinctrl-0 = <&iic2_pins>;
-       pinctrl-names = "default";
+&i2c2  {
+       pinctrl-0 = <&i2c2_pins>;
+       pinctrl-names = "i2c-hdmi";
 
        clock-frequency = <100000>;
+};
 
-       ak4643: codec@12 {
-               compatible = "asahi-kasei,ak4643";
-               #sound-dai-cells = <0>;
-               reg = <0x12>;
-       };
-
-       composite-in@20 {
-               compatible = "adi,adv7180";
-               reg = <0x20>;
-               remote = <&vin1>;
-
-               port {
-                       adv7180: endpoint {
-                               bus-width = <8>;
-                               remote-endpoint = <&vin1ep0>;
-                       };
-               };
-       };
-
-       hdmi@39 {
-               compatible = "adi,adv7511w";
-               reg = <0x39>;
-               interrupt-parent = <&gpio1>;
-               interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
-
-               adi,input-depth = <8>;
-               adi,input-colorspace = "rgb";
-               adi,input-clock = "1x";
-               adi,input-style = <1>;
-               adi,input-justification = "evenly";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       port@0 {
-                               reg = <0>;
-                               adv7511_in: endpoint {
-                                       remote-endpoint = <&du_out_lvds0>;
-                               };
-                       };
-
-                       port@1 {
-                               reg = <1>;
-                               adv7511_out: endpoint {
-                                       remote-endpoint = <&hdmi_con_out>;
-                               };
-                       };
-               };
-       };
-
-       hdmi-in@4c {
-               compatible = "adi,adv7612";
-               reg = <0x4c>;
-               interrupt-parent = <&gpio1>;
-               interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
-               default-input = <0>;
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+&iic2  {
+       pinctrl-0 = <&iic2_pins>;
+       pinctrl-names = "i2c-hdmi";
 
-                       port@0 {
-                               reg = <0>;
-                               adv7612_in: endpoint {
-                                       remote-endpoint = <&hdmi_con_in>;
-                               };
-                       };
+       clock-frequency = <100000>;
+};
 
-                       port@2 {
-                               reg = <2>;
-                               adv7612_out: endpoint {
-                                       remote-endpoint = <&vin0ep2>;
-                               };
-                       };
-               };
-       };
+&i2c3  {
+       pinctrl-0 = <&i2c3_pins>;
+       pinctrl-names = "i2c-pwr";
 };
 
-&iic3 {
-       pinctrl-names = "default";
+&iic3  {
        pinctrl-0 = <&iic3_pins>;
-       status = "okay";
-
-       pmic@58 {
-               compatible = "dlg,da9063";
-               reg = <0x58>;
-               interrupt-parent = <&irqc0>;
-               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
-               interrupt-controller;
-
-               rtc {
-                       compatible = "dlg,da9063-rtc";
-               };
-
-               wdt {
-                       compatible = "dlg,da9063-watchdog";
-               };
-       };
-
-       vdd_dvfs: regulator@68 {
-               compatible = "dlg,da9210";
-               reg = <0x68>;
-               interrupt-parent = <&irqc0>;
-               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
-
-               regulator-min-microvolt = <1000000>;
-               regulator-max-microvolt = <1000000>;
-               regulator-boot-on;
-               regulator-always-on;
-       };
+       pinctrl-names = "i2c-pwr";
 };
 
 &pci0 {
        status = "okay";
 
        port {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
                vin1ep0: endpoint {
                        remote-endpoint = <&adv7180>;
                        bus-width = <8>;
        };
 };
 
+&rwdt {
+       timeout-sec = <60>;
+       status = "okay";
+};
+
 &ssi1 {
        shared-pin;
 };