[PATCH 06/11] arm64: tegra: Add initial power tree for P3310
Jon Hunter
jonathanh at nvidia.com
Wed Mar 8 03:18:15 PST 2017
On 23/02/17 17:30, Thierry Reding wrote:
> From: Thierry Reding <treding at nvidia.com>
>
> Enable the Maxim MAX77620 PMIC found on P3310 and add some fixed
> regulators to model the power tree.
>
> Signed-off-by: Thierry Reding <treding at nvidia.com>
> ---
> arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi | 211 +++++++++++++++++++++++++
> 1 file changed, 211 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
> index ffbb4be5122e..1a9ac73b4ecb 100644
> --- a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
> +++ b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
> @@ -1,5 +1,7 @@
> #include "tegra186.dtsi"
>
> +#include <dt-bindings/mfd/max77620.h>
> +
> / {
> model = "NVIDIA Tegra186 P3310 Processor Module";
> compatible = "nvidia,p3310", "nvidia,tegra186";
> @@ -115,6 +117,180 @@
> bpmp {
> i2c {
> status = "okay";
> +
> + pmic: pmic at 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>;
> + };
> +
> + vdd_pex: ldo7 {
> + regulator-name = "VDD_PEX_1V05";
> + regulator-min-microvolt = <1050000>;
> + regulator-max-microvolt = <1050000>;
> + /* XXX */
> + regulator-always-on;
> + regulator-boot-on;
> + };
On the schematics for I am looking at (for the c03 version) I see:
ldo7 --> VDD_HDMI_1V05
ldo8 --> VDD_PEX_1V05
> + };
> + };
> };
> };
>
> @@ -123,4 +299,39 @@
> status = "okay";
> method = "smc";
> };
> +
> + regulators {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + vdd_5v0_sys: regulator at 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 at 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>;
> + };
> + };
> };
>
Otherwise looks good.
Cheers
Jon
--
nvpublic
More information about the linux-arm-kernel
mailing list