Other Parts Discussed in Thread: AM6442, TPS65220, TPS65219, SK-AM64B, SK-AM62-LP
Tool/software:
Dear community,
For a custom board we use the AM6442 SOC. As PMIC we use the TI TPS65220, and for ethernet we use two TI DP83822 PHYs.
We want to operate the PHYs with AVD=1.8V. Therefore we connected them to LDO4 (default: 2.5V), which output voltage shall be set to 1.8V (PMIC Vsys=3.3V) as fast as possible after power on.
My observation is that the PMIC is not initialized at all during the boot sequence. Only linux configures the PMIC during kernel boot. I expected that preferably the SPL (R5 or A53), or at least U-Boot initializes all regulators which have the properties "regulator-boot-on;" and "regulator-always-on;" set.
Since the PMIC is initialized by linux, I suppose I have done something wrong in U-Boot.
Here is my the PMIC snippet from my u-boot device tree (which is equal to the device tree used by linux).
&main_i2c0 {
bootph-all;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c0_pins_default>;
clock-frequency = <400000>;
tps65219: pmic@30 {
bootph-all;
compatible = "ti,tps65219";
reg = <0x30>;
buck1-supply = <&vcc_3v3_sys>;
buck2-supply = <&vcc_3v3_sys>;
buck3-supply = <&vcc_3v3_sys>;
ldo1-supply = <&vcc_3v3>;
ldo2-supply = <&buck2_reg>;
ldo3-supply = <&vcc_3v3>;
ldo4-supply = <&vcc_3v3>;
pinctrl-names = "default";
pinctrl-0 = <&pmic_irq_pins_default>;
interrupt-parent = <&gic500>;
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
regulators {
buck1_reg: buck1 {
bootph-all;
regulator-name = "VDD_CORE";
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <750000>;
regulator-boot-on;
regulator-always-on;
};
buck2_reg: buck2 {
bootph-all;
regulator-name = "VCC1V8_SYS";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
buck3_reg: buck3 {
bootph-all;
regulator-name = "VDD_LPDDR4";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-boot-on;
regulator-always-on;
};
ldo1_reg: ldo1 {
bootph-all;
regulator-name = "VDDSHV_SDIO_PMIC";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo2_reg: ldo2 {
bootph-all;
regulator-name = "VDDAR_CORE";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-boot-on;
regulator-always-on;
};
ldo3_reg: ldo3 {
bootph-all;
regulator-name = "VDDA_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
ldo4_reg: ldo4 {
bootph-all;
regulator-name = "VDD_PHY_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
&pmic_irq_pins_default {
bootph-all;
};
&ldo4_reg{
regulator-init-microvolt = <1800000>;
};CONFIG_DM_PMIC=y CONFIG_PMIC_TPS65219=y CONFIG_DM_REGULATOR=y CONFIG_DM_REGULATOR_TPS65219=y
CONFIG_DM_REGULATOR=y CONFIG_SPL_DM_REGULATOR=y CONFIG_DM_REGULATOR_GPIO=y CONFIG_SPL_DM_REGULATOR_GPIO=y

