[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