From: Aapo Vienamo Date: Fri, 10 Aug 2018 18:08:09 +0000 (+0300) Subject: soc/tegra: pmc: Implement tegra_io_pad_is_powered() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=f142b9d6461c4f60feb2a602bafcd582aa324288;p=linux.git soc/tegra: pmc: Implement tegra_io_pad_is_powered() Implement a function to query whether a pad is in deep power down mode. This is needed by the pinctrl callbacks. Signed-off-by: Aapo Vienamo Acked-by: Jon Hunter Signed-off-by: Thierry Reding --- diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c index c04ff5eb7cade..d366ebcca1712 100644 --- a/drivers/soc/tegra/pmc.c +++ b/drivers/soc/tegra/pmc.c @@ -1075,6 +1075,21 @@ unlock: } EXPORT_SYMBOL(tegra_io_pad_power_disable); +static int tegra_io_pad_is_powered(enum tegra_io_pad id) +{ + unsigned long request, status; + u32 mask, value; + int err; + + err = tegra_io_pad_get_dpd_register_bit(id, &request, &status, &mask); + if (err) + return err; + + value = tegra_pmc_readl(status); + + return !(value & mask); +} + int tegra_io_pad_set_voltage(enum tegra_io_pad id, enum tegra_io_pad_voltage voltage) {