Lines Matching +full:stm32mp1 +full:- +full:rcc

1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (C) 2017, STMicroelectronics - All Rights Reserved
10 #include <reset-uclass.h>
14 /* reset clear offset for STM32MP RCC */
33 struct stm32_reset_priv *priv = dev_get_priv(reset_ctl->dev); in stm32_reset_assert()
34 int bank = (reset_ctl->id / BITS_PER_LONG) * 4; in stm32_reset_assert()
35 int offset = reset_ctl->id % BITS_PER_LONG; in stm32_reset_assert()
37 reset_ctl->id, bank, offset); in stm32_reset_assert()
39 if (dev_get_driver_data(reset_ctl->dev) == STM32MP1) in stm32_reset_assert()
40 /* reset assert is done in rcc set register */ in stm32_reset_assert()
41 writel(BIT(offset), priv->base + bank); in stm32_reset_assert()
43 setbits_le32(priv->base + bank, BIT(offset)); in stm32_reset_assert()
50 struct stm32_reset_priv *priv = dev_get_priv(reset_ctl->dev); in stm32_reset_deassert()
51 int bank = (reset_ctl->id / BITS_PER_LONG) * 4; in stm32_reset_deassert()
52 int offset = reset_ctl->id % BITS_PER_LONG; in stm32_reset_deassert()
54 reset_ctl->id, bank, offset); in stm32_reset_deassert()
56 if (dev_get_driver_data(reset_ctl->dev) == STM32MP1) in stm32_reset_deassert()
57 /* reset deassert is done in rcc clr register */ in stm32_reset_deassert()
58 writel(BIT(offset), priv->base + bank + RCC_CL); in stm32_reset_deassert()
60 clrbits_le32(priv->base + bank, BIT(offset)); in stm32_reset_deassert()
76 priv->base = dev_read_addr(dev); in stm32_reset_probe()
77 if (priv->base == FDT_ADDR_T_NONE) { in stm32_reset_probe()
79 priv->base = dev_read_addr(dev->parent); in stm32_reset_probe()
80 if (priv->base == FDT_ADDR_T_NONE) in stm32_reset_probe()
81 return -EINVAL; in stm32_reset_probe()