mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-13 18:56:59 +02:00
imx: power-domain: Enable refcounting on imx8mp
Prevent enabling/disabling multiple times the same power domain to avoid breakages due to the same power domains being referenced several times by different device nodes. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
This commit is contained in:
parent
9086b64ca0
commit
a785ef2448
@ -506,8 +506,12 @@ static int imx8m_power_domain_bind(struct udevice *dev)
|
||||
static int imx8m_power_domain_probe(struct udevice *dev)
|
||||
{
|
||||
struct imx8m_power_domain_plat *pdata = dev_get_plat(dev);
|
||||
struct power_domain_plat *plat = dev_get_uclass_plat(dev);
|
||||
int ret;
|
||||
|
||||
/* Every subdomain has its own device node */
|
||||
plat->subdomains = 1;
|
||||
|
||||
/* Nothing to do for non-"power-domain" driver instances. */
|
||||
if (!strstr(dev->name, "power-domain"))
|
||||
return 0;
|
||||
|
@ -201,8 +201,12 @@ int imx8mp_hsiomix_bind(struct udevice *dev)
|
||||
static int imx8mp_hsiomix_probe(struct udevice *dev)
|
||||
{
|
||||
struct imx8mp_hsiomix_priv *priv = dev_get_priv(dev);
|
||||
struct power_domain_plat *plat = dev_get_uclass_plat(dev);
|
||||
int ret;
|
||||
|
||||
/* Definitions are in imx8mp-power.h */
|
||||
plat->subdomains = 5;
|
||||
|
||||
priv->base = dev_read_addr_ptr(dev);
|
||||
|
||||
ret = clk_get_by_name(dev, "usb", &priv->clk_usb);
|
||||
|
@ -143,9 +143,13 @@ static int imx8mp_mediamix_bind(struct udevice *dev)
|
||||
|
||||
static int imx8mp_mediamix_probe(struct udevice *dev)
|
||||
{
|
||||
struct power_domain_plat *plat = dev_get_uclass_plat(dev);
|
||||
struct imx8mp_mediamix_priv *priv = dev_get_priv(dev);
|
||||
int ret;
|
||||
|
||||
/* Definitions are in imx8mp-power.h */
|
||||
plat->subdomains = 9;
|
||||
|
||||
priv->base = dev_read_addr_ptr(dev);
|
||||
|
||||
ret = clk_get_by_name(dev, "apb", &priv->clk_apb);
|
||||
|
Loading…
Reference in New Issue
Block a user