.. | .. |
---|
19 | 19 | |
---|
20 | 20 | static const u32 gpll0_a53cc_map[] = { 4, 5 }; |
---|
21 | 21 | |
---|
22 | | -static const char * const gpll0_a53cc[] = { |
---|
23 | | - "gpll0_vote", |
---|
24 | | - "a53pll", |
---|
| 22 | +static const struct clk_parent_data pdata[] = { |
---|
| 23 | + { .fw_name = "aux", .name = "gpll0_vote", }, |
---|
| 24 | + { .fw_name = "pll", .name = "a53pll", }, |
---|
25 | 25 | }; |
---|
26 | 26 | |
---|
27 | 27 | /* |
---|
.. | .. |
---|
62 | 62 | return -ENOMEM; |
---|
63 | 63 | |
---|
64 | 64 | init.name = "a53mux"; |
---|
65 | | - init.parent_names = gpll0_a53cc; |
---|
66 | | - init.num_parents = ARRAY_SIZE(gpll0_a53cc); |
---|
| 65 | + init.parent_data = pdata; |
---|
| 66 | + init.num_parents = ARRAY_SIZE(pdata); |
---|
67 | 67 | init.ops = &clk_regmap_mux_div_ops; |
---|
68 | 68 | init.flags = CLK_SET_RATE_PARENT; |
---|
69 | 69 | |
---|
.. | .. |
---|
79 | 79 | a53cc->pclk = devm_clk_get(parent, NULL); |
---|
80 | 80 | if (IS_ERR(a53cc->pclk)) { |
---|
81 | 81 | ret = PTR_ERR(a53cc->pclk); |
---|
82 | | - dev_err(dev, "failed to get clk: %d\n", ret); |
---|
| 82 | + if (ret != -EPROBE_DEFER) |
---|
| 83 | + dev_err(dev, "failed to get clk: %d\n", ret); |
---|
83 | 84 | return ret; |
---|
84 | 85 | } |
---|
85 | 86 | |
---|
.. | .. |
---|
96 | 97 | goto err; |
---|
97 | 98 | } |
---|
98 | 99 | |
---|
99 | | - ret = of_clk_add_hw_provider(parent->of_node, of_clk_hw_simple_get, |
---|
100 | | - &a53cc->clkr.hw); |
---|
| 100 | + ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, |
---|
| 101 | + &a53cc->clkr.hw); |
---|
101 | 102 | if (ret) { |
---|
102 | 103 | dev_err(dev, "failed to add clock provider: %d\n", ret); |
---|
103 | 104 | goto err; |
---|
.. | .. |
---|
115 | 116 | static int qcom_apcs_msm8916_clk_remove(struct platform_device *pdev) |
---|
116 | 117 | { |
---|
117 | 118 | struct clk_regmap_mux_div *a53cc = platform_get_drvdata(pdev); |
---|
118 | | - struct device *parent = pdev->dev.parent; |
---|
119 | 119 | |
---|
120 | 120 | clk_notifier_unregister(a53cc->pclk, &a53cc->clk_nb); |
---|
121 | | - of_clk_del_provider(parent->of_node); |
---|
122 | 121 | |
---|
123 | 122 | return 0; |
---|
124 | 123 | } |
---|