arm64: tegra: Add initial power tree for P3310
authorThierry Reding <treding@nvidia.com>
Thu, 23 Feb 2017 17:30:48 +0000 (18:30 +0100)
committerThierry Reding <treding@nvidia.com>
Fri, 10 Mar 2017 16:37:32 +0000 (17:37 +0100)
Enable the Maxim MAX77620 PMIC found on P3310 and add some fixed
regulators to model the power tree.

Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi

index ffbb4be..9eba6da 100644 (file)
@@ -1,5 +1,7 @@
 #include "tegra186.dtsi"
 
+#include <dt-bindings/mfd/max77620.h>
+
 / {
        model = "NVIDIA Tegra186 P3310 Processor Module";
        compatible = "nvidia,p3310", "nvidia,tegra186";
        bpmp {
                i2c {
                        status = "okay";
+
+                       pmic: pmic@3c {
+                               compatible = "maxim,max77620";
+                               reg = <0x3c>;
+
+                               interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
+                               #interrupt-cells = <2>;
+                               interrupt-controller;
+
+                               #gpio-cells = <2>;
+                               gpio-controller;
+
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&max77620_default>;
+
+                               max77620_default: pinmux {
+                                       gpio0 {
+                                               pins = "gpio0";
+                                               function = "gpio";
+                                       };
+
+                                       gpio1 {
+                                               pins = "gpio1";
+                                               function = "fps-out";
+                                               maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
+                                       };
+
+                                       gpio2 {
+                                               pins = "gpio2";
+                                               function = "fps-out";
+                                               maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
+                                       };
+
+                                       gpio3 {
+                                               pins = "gpio3";
+                                               function = "fps-out";
+                                               maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
+                                       };
+
+                                       gpio4 {
+                                               pins = "gpio4";
+                                               function = "32k-out1";
+                                               drive-push-pull = <1>;
+                                       };
+
+                                       gpio5 {
+                                               pins = "gpio5";
+                                               function = "gpio";
+                                               drive-push-pull = <0>;
+                                       };
+
+                                       gpio6 {
+                                               pins = "gpio6";
+                                               function = "gpio";
+                                               drive-push-pull = <1>;
+                                       };
+
+                                       gpio7 {
+                                               pins = "gpio7";
+                                               function = "gpio";
+                                               drive-push-pull = <0>;
+                                       };
+                               };
+
+                               fps {
+                                       fps0 {
+                                               maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
+                                               maxim,shutdown-fps-time-period-us = <640>;
+                                       };
+
+                                       fps1 {
+                                               maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
+                                               maxim,shutdown-fps-time-period-us = <640>;
+                                       };
+
+                                       fps2 {
+                                               maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
+                                               maxim,shutdown-fps-time-period-us = <640>;
+                                       };
+                               };
+
+                               regulators {
+                                       in-sd0-supply = <&vdd_5v0_sys>;
+                                       in-sd1-supply = <&vdd_5v0_sys>;
+                                       in-sd2-supply = <&vdd_5v0_sys>;
+                                       in-sd3-supply = <&vdd_5v0_sys>;
+
+                                       in-ldo0-1-supply = <&vdd_5v0_sys>;
+                                       in-ldo2-supply = <&vdd_5v0_sys>;
+                                       in-ldo3-5-supply = <&vdd_5v0_sys>;
+                                       in-ldo4-6-supply = <&vdd_1v8>;
+                                       in-ldo7-8-supply = <&avdd_dsi_csi>;
+
+                                       sd0 {
+                                               regulator-name = "VDD_DDR_1V1_PMIC";
+                                               regulator-min-microvolt = <1100000>;
+                                               regulator-max-microvolt = <1100000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       avdd_dsi_csi: sd1 {
+                                               regulator-name = "AVDD_DSI_CSI_1V2";
+                                               regulator-min-microvolt = <1200000>;
+                                               regulator-max-microvolt = <1200000>;
+                                               /* XXX */
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       vdd_1v8: sd2 {
+                                               regulator-name = "VDD_1V8";
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                               /* XXX */
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       vdd_3v3_sys: sd3 {
+                                               regulator-name = "VDD_3V3_SYS";
+                                               regulator-min-microvolt = <3300000>;
+                                               regulator-max-microvolt = <3300000>;
+                                               /* XXX */
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       ldo0 {
+                                               regulator-name = "VDD_1V8_AP_PLL";
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                               /* XXX */
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       ldo2 {
+                                               regulator-name = "VDDIO_3V3_AOHV";
+                                               regulator-min-microvolt = <3300000>;
+                                               regulator-max-microvolt = <3300000>;
+                                               /* XXX */
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       vddio_sdmmc1: ldo3 {
+                                               regulator-name = "VDDIO_SDMMC1_AP";
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <3300000>;
+                                       };
+
+                                       ldo4 {
+                                               regulator-name = "VDD_RTC";
+                                               regulator-min-microvolt = <1000000>;
+                                               regulator-max-microvolt = <1000000>;
+                                       };
+
+                                       vddio_sdmmc3: ldo5 {
+                                               regulator-name = "VDDIO_SDMMC3_AP";
+                                               regulator-min-microvolt = <2800000>;
+                                               regulator-max-microvolt = <2800000>;
+                                       };
+
+                                       avdd_1v05: ldo7 {
+                                               regulator-name = "VDD_HDMI_1V05";
+                                               regulator-min-microvolt = <1050000>;
+                                               regulator-max-microvolt = <1050000>;
+                                               /* XXX */
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       vdd_pex: ldo8 {
+                                               regulator-name = "VDD_PEX_1V05";
+                                               regulator-min-microvolt = <1050000>;
+                                               regulator-max-microvolt = <1050000>;
+                                               /* XXX */
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+                               };
+                       };
                };
        };
 
                status = "okay";
                method = "smc";
        };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdd_5v0_sys: regulator@0 {
+                       compatible = "regulator-fixed";
+                       reg = <0>;
+
+                       regulator-name = "VDD_5V0_SYS";
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               vdd_1v8_ap: regulator@1 {
+                       compatible = "regulator-fixed";
+                       reg = <1>;
+
+                       regulator-name = "VDD_1V8_AP";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+
+                       /* XXX */
+                       regulator-always-on;
+                       regulator-boot-on;
+
+                       gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+
+                       vin-supply = <&vdd_1v8>;
+               };
+       };
 };