[PATCH V2 19/26] imx: imx8ulp_evk: Power down the domains may used in u-boot
Stefano Babic
sbabic at denx.de
Wed Apr 13 09:45:13 CEST 2022
Hi Peng,
On 13.04.22 05:00, Peng Fan (OSS) wrote:
> Hi Stefano,
>
> On 2022/4/13 1:10, Stefano Babic wrote:
>> Hi Peng,Ye,
>>
>> On 06.04.22 08:30, Peng Fan (OSS) wrote:
>>> From: Ye Li <ye.li at nxp.com>
>>>
>>> Since ATF power domain will hold the enable counter for each power
>>> domain,
>>> We need to power off them before entering kernel to avoid this
>>> power domain can't be really powered off.
>>>
>>> Signed-off-by: Ye Li <ye.li at nxp.com>
>>> Signed-off-by: Peng Fan <peng.fan at nxp.com>
>>> ---
>>> board/freescale/imx8ulp_evk/imx8ulp_evk.c | 30
>>> +++++++++++++++++++++++
>>> 1 file changed, 30 insertions(+)
>>>
>>> diff --git a/board/freescale/imx8ulp_evk/imx8ulp_evk.c
>>> b/board/freescale/imx8ulp_evk/imx8ulp_evk.c
>>> index b61a4cfbe8d..1bd308148f3 100644
>>> --- a/board/freescale/imx8ulp_evk/imx8ulp_evk.c
>>> +++ b/board/freescale/imx8ulp_evk/imx8ulp_evk.c
>>> @@ -13,6 +13,8 @@
>>> #include <miiphy.h>
>>> #include <netdev.h>
>>> #include <asm/gpio.h>
>>> +#include <power-domain.h>
>>> +#include <dt-bindings/power/imx8ulp-power.h>
>>
>> But which patch is adding the file above ? I cannot find it, it is not
>> part of this series and of course build is broken without it.
>
> V5 patchset should not have such issue. I just see you already picked up
> V5 in your repo.
>
Which series are you talking about ? This series is in V2, and yes, I
merged the whole series with the exception of this patch, but none of
the applied patches added imx8ulp-power.h.
Regards,
Stefano
> Thanks,
> Peng.
>
>>
>> Best regards,
>> Stefano
>>
>>> DECLARE_GLOBAL_DATA_PTR;
>>> @@ -129,3 +131,31 @@ int board_late_init(void)
>>> {
>>> return 0;
>>> }
>>> +
>>> +void board_quiesce_devices(void)
>>> +{
>>> + /* Disable the power domains may used in u-boot before entering
>>> kernel */
>>> +#if CONFIG_IS_ENABLED(POWER_DOMAIN)
>>> + struct udevice *scmi_devpd;
>>> + int ret, i;
>>> + struct power_domain pd;
>>> + ulong ids[] = { IMX8ULP_PD_FLEXSPI2, IMX8ULP_PD_USB0,
>>> IMX8ULP_PD_USDHC0,
>>> + IMX8ULP_PD_USDHC1, IMX8ULP_PD_USDHC2_USB1,
>>> IMX8ULP_PD_DCNANO,
>>> + IMX8ULP_PD_MIPI_DSI };
>>> +
>>> + ret = uclass_get_device(UCLASS_POWER_DOMAIN, 0, &scmi_devpd);
>>> + if (ret) {
>>> + printf("Cannot get scmi devpd: err=%d\n", ret);
>>> + return;
>>> + }
>>> +
>>> + pd.dev = scmi_devpd;
>>> +
>>> + for (i = 0; i < ARRAY_SIZE(ids); i++) {
>>> + pd.id = ids[i];
>>> + ret = power_domain_off(&pd);
>>> + if (ret)
>>> + printf("power_domain_off %lu failed: err=%d\n", ids[i],
>>> ret);
>>> + }
>>> +#endif
>>> +}
>>
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
More information about the U-Boot
mailing list