Merge tag 'omap-for-v4.17/soc-pt2-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc
Pull "Two omap5 specific aux control module patches for v4.17" from Tony Lindgren: On omap5 there is an aux control module that we are not handling currently for clocks, so let's add support for it. * tag 'omap-for-v4.17/soc-pt2-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP5: control: add support for control module wkup pad config ARM: omap2+: control: add support for auxiliary control module instances
This commit is contained in:
@@ -623,6 +623,7 @@ void __init omap3_ctrl_init(void)
|
||||
|
||||
struct control_init_data {
|
||||
int index;
|
||||
void __iomem *mem;
|
||||
s16 offset;
|
||||
};
|
||||
|
||||
@@ -635,6 +636,10 @@ static const struct control_init_data omap2_ctrl_data = {
|
||||
.offset = -OMAP2_CONTROL_GENERAL,
|
||||
};
|
||||
|
||||
static const struct control_init_data ctrl_aux_data = {
|
||||
.index = TI_CLKM_CTRL_AUX,
|
||||
};
|
||||
|
||||
static const struct of_device_id omap_scrm_dt_match_table[] = {
|
||||
{ .compatible = "ti,am3-scm", .data = &ctrl_data },
|
||||
{ .compatible = "ti,am4-scm", .data = &ctrl_data },
|
||||
@@ -644,6 +649,7 @@ static const struct of_device_id omap_scrm_dt_match_table[] = {
|
||||
{ .compatible = "ti,dm816-scrm", .data = &ctrl_data },
|
||||
{ .compatible = "ti,omap4-scm-core", .data = &ctrl_data },
|
||||
{ .compatible = "ti,omap5-scm-core", .data = &ctrl_data },
|
||||
{ .compatible = "ti,omap5-scm-wkup-pad-conf", .data = &ctrl_aux_data },
|
||||
{ .compatible = "ti,dra7-scm-core", .data = &ctrl_data },
|
||||
{ }
|
||||
};
|
||||
@@ -660,15 +666,21 @@ int __init omap2_control_base_init(void)
|
||||
struct device_node *np;
|
||||
const struct of_device_id *match;
|
||||
struct control_init_data *data;
|
||||
void __iomem *mem;
|
||||
|
||||
for_each_matching_node_and_match(np, omap_scrm_dt_match_table, &match) {
|
||||
data = (struct control_init_data *)match->data;
|
||||
|
||||
omap2_ctrl_base = of_iomap(np, 0);
|
||||
if (!omap2_ctrl_base)
|
||||
mem = of_iomap(np, 0);
|
||||
if (!mem)
|
||||
return -ENOMEM;
|
||||
|
||||
omap2_ctrl_offset = data->offset;
|
||||
if (data->index == TI_CLKM_CTRL) {
|
||||
omap2_ctrl_base = mem;
|
||||
omap2_ctrl_offset = data->offset;
|
||||
}
|
||||
|
||||
data->mem = mem;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -713,7 +725,7 @@ int __init omap_control_init(void)
|
||||
} else {
|
||||
/* No scm_conf found, direct access */
|
||||
ret = omap2_clk_provider_init(np, data->index, NULL,
|
||||
omap2_ctrl_base);
|
||||
data->mem);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user