mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
power: pmic: rk8xx: Fix power-on source check in SPL
The commit30975fb73d
("rockchip: Add option to prevent booting on power plug-in") introduce an option to prevent booting a device when the device was powered on due to power plug-in instead of pressing a power button. This feature works by checking the power-on source during PMIC probe and powers off the device if power-on source was power plug-in. This check currently runs very late at PMIC probe in U-Boot proper. Fix so that the power-on source check can work at probe time in SPL. Also enable probe after bind and remove the PMIC banner in SPL. With this we can use ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON and SPL_PMIC_RK8XX to power off the device very quickly after TPL instead of after TF-A and U-Boot proper has been loaded and run. DDR V1.18 f366f69a7d typ 23/07/17-15:48:58 ln LP4/4x derate en, other dram:1x trefi ddrconfig:7 LPDDR4X, 324MHz BW=32 Col=10 Bk=8 CS0 Row=17 CS1 Row=17 CS=2 Die BW=16 Size=8192MB change to: 324MHz clk skew:0x64 change to: 528MHz clk skew:0x58 change to: 780MHz clk skew:0x58 change to: 1056MHz(final freq) clk skew:0x40 out Power Off due to plug-in event Fixes:30975fb73d
("rockchip: Add option to prevent booting on power plug-in") Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
This commit is contained in:
parent
7ecc90f1fd
commit
c8ebcc921f
1 changed files with 13 additions and 7 deletions
|
@ -156,6 +156,10 @@ static int rk8xx_bind(struct udevice *dev)
|
|||
if (!children)
|
||||
debug("%s: %s - no child found\n", __func__, dev->name);
|
||||
|
||||
if (IS_ENABLED(CONFIG_SPL_BUILD) &&
|
||||
IS_ENABLED(CONFIG_ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON))
|
||||
dev_or_flags(dev, DM_FLAG_PROBE_AFTER_BIND);
|
||||
|
||||
/* Always return success for this device */
|
||||
return 0;
|
||||
}
|
||||
|
@ -236,14 +240,16 @@ static int rk8xx_probe(struct udevice *dev)
|
|||
pmic_reg_read(dev, init_data[i].reg));
|
||||
}
|
||||
|
||||
printf("PMIC: RK%x ", show_variant);
|
||||
if (!IS_ENABLED(CONFIG_SPL_BUILD)) {
|
||||
printf("PMIC: RK%x ", show_variant);
|
||||
if (on_source && off_source)
|
||||
printf("(on=0x%02x, off=0x%02x)",
|
||||
pmic_reg_read(dev, on_source),
|
||||
pmic_reg_read(dev, off_source));
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
if (on_source && off_source)
|
||||
printf("(on=0x%02x, off=0x%02x)",
|
||||
pmic_reg_read(dev, on_source),
|
||||
pmic_reg_read(dev, off_source));
|
||||
printf("\n");
|
||||
if (CONFIG_IS_ENABLED(ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON))
|
||||
if (IS_ENABLED(CONFIG_ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON))
|
||||
rk8xx_off_for_plugin(dev);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue