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:
Родитель
13136a47a0
Коммит
00ead3c913
|
@ -922,11 +922,12 @@ tegra_io_pad_find(struct tegra_pmc *pmc, enum tegra_io_pad id)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static int tegra_io_pad_prepare(enum tegra_io_pad id, unsigned long *request,
|
||||
unsigned long *status, u32 *mask)
|
||||
static int tegra_io_pad_get_dpd_register_bit(enum tegra_io_pad id,
|
||||
unsigned long *request,
|
||||
unsigned long *status,
|
||||
u32 *mask)
|
||||
{
|
||||
const struct tegra_io_pad_soc *pad;
|
||||
unsigned long rate, value;
|
||||
|
||||
pad = tegra_io_pad_find(pmc, id);
|
||||
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;
|
||||
}
|
||||
|
||||
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) {
|
||||
rate = clk_get_rate(pmc->clk);
|
||||
if (!rate) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче