On 05/08/2022 11:41, Petlozu Pravareshwar wrote:
Add IO PAD table for tegra234 to allow configuring dpd mode
and switching the pins to 1.8V or 3.3V as needed.
In tegra234, DPD registers are reorganized such that there is
a DPD_REQ register and a DPD_STATUS register per pad group.
This change accordingly updates the PMC driver.
Signed-off-by: Petlozu Pravareshwar <petlozup@xxxxxxxxxx>
---
drivers/soc/tegra/pmc.c | 116 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 112 insertions(+), 4 deletions(-)
snip
/**
@@ -1546,6 +1560,14 @@ static int tegra_io_pad_get_dpd_register_bit(struct tegra_pmc *pmc,
if (pad->dpd == UINT_MAX)
return -ENOTSUPP;
+ if (pmc->soc->has_reorg_hw_dpd_reg_impl) {
+ *mask = BIT(pad->dpd);
+ *status = pmc->soc->regs->reorg_dpd_status[pad->reg_index];
+ *request = pmc->soc->regs->reorg_dpd_req[pad->reg_index];
+
+ goto done;
+ }
+
*mask = BIT(pad->dpd % 32);
if (pad->dpd < 32) {
@@ -1556,6 +1578,7 @@ static int tegra_io_pad_get_dpd_register_bit(struct tegra_pmc *pmc,
*request = pmc->soc->regs->dpd2_req;
}
+done:
return 0;
}
@@ -3132,6 +3155,7 @@ static const struct tegra_pmc_soc tegra20_pmc_soc = {
.num_pmc_clks = 0,
.has_blink_output = true,
.has_usb_sleepwalk = true,
+ .has_reorg_hw_dpd_reg_impl = false,
};
I don't think you need to set false values in these blocks, the
default should be false.
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
https://www.codethink.co.uk/privacy.html