Commit 667f542d authored by Chen-Yu Tsai's avatar Chen-Yu Tsai Committed by Emilio López

clk: sunxi: add names for pll5, pll6 parent clocks to factors_data

Some factor clocks, such as the parent clock of pll5 and pll6, have
multiple output names. Add the corresponding names to factors_data
tied to compatible string.
Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
Acked-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: default avatarMike Turquette <mturquette@linaro.org>
Signed-off-by: default avatarEmilio López <emilio@elopez.com.ar>
parent 373d4e6b
...@@ -389,6 +389,7 @@ struct factors_data { ...@@ -389,6 +389,7 @@ struct factors_data {
int mux; int mux;
struct clk_factors_config *table; struct clk_factors_config *table;
void (*getter) (u32 *rate, u32 parent_rate, u8 *n, u8 *k, u8 *m, u8 *p); void (*getter) (u32 *rate, u32 parent_rate, u8 *n, u8 *k, u8 *m, u8 *p);
const char *name;
}; };
static struct clk_factors_config sun4i_pll1_config = { static struct clk_factors_config sun4i_pll1_config = {
...@@ -457,6 +458,14 @@ static const struct factors_data sun4i_pll5_data __initconst = { ...@@ -457,6 +458,14 @@ static const struct factors_data sun4i_pll5_data __initconst = {
.enable = 31, .enable = 31,
.table = &sun4i_pll5_config, .table = &sun4i_pll5_config,
.getter = sun4i_get_pll5_factors, .getter = sun4i_get_pll5_factors,
.name = "pll5",
};
static const struct factors_data sun4i_pll6_data __initconst = {
.enable = 31,
.table = &sun4i_pll5_config,
.getter = sun4i_get_pll5_factors,
.name = "pll6",
}; };
static const struct factors_data sun4i_apb1_data __initconst = { static const struct factors_data sun4i_apb1_data __initconst = {
...@@ -499,14 +508,14 @@ static struct clk * __init sunxi_factors_clk_setup(struct device_node *node, ...@@ -499,14 +508,14 @@ static struct clk * __init sunxi_factors_clk_setup(struct device_node *node,
(parents[i] = of_clk_get_parent_name(node, i)) != NULL) (parents[i] = of_clk_get_parent_name(node, i)) != NULL)
i++; i++;
/* Nodes should be providing the name via clock-output-names /*
* but originally our dts didn't, and so we used node->name. * some factor clocks, such as pll5 and pll6, may have multiple
* The new, better nodes look like clk@deadbeef, so we pull the * outputs, and have their name designated in factors_data
* name just in this case */ */
if (!strcmp("clk", clk_name)) { if (data->name)
of_property_read_string_index(node, "clock-output-names", clk_name = data->name;
0, &clk_name); else
} of_property_read_string(node, "clock-output-names", &clk_name);
factors = kzalloc(sizeof(struct clk_factors), GFP_KERNEL); factors = kzalloc(sizeof(struct clk_factors), GFP_KERNEL);
if (!factors) if (!factors)
...@@ -838,7 +847,7 @@ static const struct divs_data pll5_divs_data __initconst = { ...@@ -838,7 +847,7 @@ static const struct divs_data pll5_divs_data __initconst = {
}; };
static const struct divs_data pll6_divs_data __initconst = { static const struct divs_data pll6_divs_data __initconst = {
.factors = &sun4i_pll5_data, .factors = &sun4i_pll6_data,
.div = { .div = {
{ .shift = 0, .table = pll6_sata_tbl, .gate = 14 }, /* M, SATA */ { .shift = 0, .table = pll6_sata_tbl, .gate = 14 }, /* M, SATA */
{ .fixed = 2 }, /* P, other */ { .fixed = 2 }, /* P, other */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment