162306a36Sopenharmony_ciNVIDIA Tegra Regulators Coupling
262306a36Sopenharmony_ci================================
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciNVIDIA Tegra SoC's have a mandatory voltage-coupling between regulators.
562306a36Sopenharmony_ciThus on Tegra20 there are 3 coupled regulators and on NVIDIA Tegra30
662306a36Sopenharmony_cithere are 2.
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciTegra20 voltage coupling
962306a36Sopenharmony_ci------------------------
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciOn Tegra20 SoC's there are 3 coupled regulators: CORE, RTC and CPU.
1262306a36Sopenharmony_ciThe CORE and RTC voltages shall be in a range of 170mV from each other
1362306a36Sopenharmony_ciand they both shall be higher than the CPU voltage by at least 120mV.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciTegra30 voltage coupling
1662306a36Sopenharmony_ci------------------------
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciOn Tegra30 SoC's there are 2 coupled regulators: CORE and CPU. The CORE
1962306a36Sopenharmony_ciand CPU voltages shall be in a range of 300mV from each other and CORE
2062306a36Sopenharmony_civoltage shall be higher than the CPU by N mV, where N depends on the CPU
2162306a36Sopenharmony_civoltage.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciRequired properties:
2462306a36Sopenharmony_ci- nvidia,tegra-core-regulator: Boolean property that designates regulator
2562306a36Sopenharmony_ci  as the "Core domain" voltage regulator.
2662306a36Sopenharmony_ci- nvidia,tegra-rtc-regulator: Boolean property that designates regulator
2762306a36Sopenharmony_ci  as the "RTC domain" voltage regulator.
2862306a36Sopenharmony_ci- nvidia,tegra-cpu-regulator: Boolean property that designates regulator
2962306a36Sopenharmony_ci  as the "CPU domain" voltage regulator.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciExample:
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	pmic {
3462306a36Sopenharmony_ci		regulators {
3562306a36Sopenharmony_ci			core_vdd_reg: core {
3662306a36Sopenharmony_ci				regulator-name = "vdd_core";
3762306a36Sopenharmony_ci				regulator-min-microvolt = <950000>;
3862306a36Sopenharmony_ci				regulator-max-microvolt = <1300000>;
3962306a36Sopenharmony_ci				regulator-coupled-with = <&rtc_vdd_reg &cpu_vdd_reg>;
4062306a36Sopenharmony_ci				regulator-coupled-max-spread = <170000 550000>;
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci				nvidia,tegra-core-regulator;
4362306a36Sopenharmony_ci			};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci			rtc_vdd_reg: rtc {
4662306a36Sopenharmony_ci				regulator-name = "vdd_rtc";
4762306a36Sopenharmony_ci				regulator-min-microvolt = <950000>;
4862306a36Sopenharmony_ci				regulator-max-microvolt = <1300000>;
4962306a36Sopenharmony_ci				regulator-coupled-with = <&core_vdd_reg &cpu_vdd_reg>;
5062306a36Sopenharmony_ci				regulator-coupled-max-spread = <170000 550000>;
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci				nvidia,tegra-rtc-regulator;
5362306a36Sopenharmony_ci			};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci			cpu_vdd_reg: cpu {
5662306a36Sopenharmony_ci				regulator-name = "vdd_cpu";
5762306a36Sopenharmony_ci				regulator-min-microvolt = <750000>;
5862306a36Sopenharmony_ci				regulator-max-microvolt = <1125000>;
5962306a36Sopenharmony_ci				regulator-coupled-with = <&core_vdd_reg &rtc_vdd_reg>;
6062306a36Sopenharmony_ci				regulator-coupled-max-spread = <550000 550000>;
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci				nvidia,tegra-cpu-regulator;
6362306a36Sopenharmony_ci			};
6462306a36Sopenharmony_ci		};
6562306a36Sopenharmony_ci	};
66