soc/tegra: pmc: Factor out DPD register bit calculation
Factor out the the code to calculate the correct DPD register and bit number for a given pad. This logic will be needed to query the status register. Signed-off-by: Aapo Vienamo <avienamo@nvidia.com> Acked-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
13136a47a0
commit
00ead3c913
|
@ -922,11 +922,12 @@ tegra_io_pad_find(struct tegra_pmc *pmc, enum tegra_io_pad id)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra_io_pad_prepare(enum tegra_io_pad id, unsigned long *request,
|
static int tegra_io_pad_get_dpd_register_bit(enum tegra_io_pad id,
|
||||||
unsigned long *status, u32 *mask)
|
unsigned long *request,
|
||||||
|
unsigned long *status,
|
||||||
|
u32 *mask)
|
||||||
{
|
{
|
||||||
const struct tegra_io_pad_soc *pad;
|
const struct tegra_io_pad_soc *pad;
|
||||||
unsigned long rate, value;
|
|
||||||
|
|
||||||
pad = tegra_io_pad_find(pmc, id);
|
pad = tegra_io_pad_find(pmc, id);
|
||||||
if (!pad) {
|
if (!pad) {
|
||||||
|
@ -947,6 +948,19 @@ static int tegra_io_pad_prepare(enum tegra_io_pad id, unsigned long *request,
|
||||||
*request = pmc->soc->regs->dpd2_req;
|
*request = pmc->soc->regs->dpd2_req;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int tegra_io_pad_prepare(enum tegra_io_pad id, unsigned long *request,
|
||||||
|
unsigned long *status, u32 *mask)
|
||||||
|
{
|
||||||
|
unsigned long rate, value;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = tegra_io_pad_get_dpd_register_bit(id, request, status, mask);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
if (pmc->clk) {
|
if (pmc->clk) {
|
||||||
rate = clk_get_rate(pmc->clk);
|
rate = clk_get_rate(pmc->clk);
|
||||||
if (!rate) {
|
if (!rate) {
|
||||||
|
|
Loading…
Reference in New Issue