|
@@ -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) {
|