Skip to content

Commit d199e00

Browse files
bivvyrkhuangtao
authored andcommitted
clk: rockchip: rk618: abstract clk names
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com> Change-Id: Ic672ba83a247bb315249f345f4eec178767d3c58
1 parent a33fbdf commit d199e00

1 file changed

Lines changed: 30 additions & 75 deletions

File tree

drivers/clk/rockchip/regmap/clk-rk618.c

Lines changed: 30 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -62,100 +62,98 @@ struct rk618_cru {
6262
struct clk_onecell_data clk_data;
6363
};
6464

65-
static char clkin_name[32] = "dummy";
66-
static char lcdc0_dclkp_name[32] = "dummy";
67-
static char lcdc1_dclkp_name[32] = "dummy";
65+
#define CNAME(x) "rk618_" x
6866

6967
#define PNAME(x) static const char *const x[]
7068

71-
PNAME(mux_pll_in_p) = { "lcdc0_clk", "lcdc1_clk", clkin_name };
72-
PNAME(mux_pll_src_p) = { "vif_pll_clk", "scaler_pll_clk", };
73-
PNAME(mux_scaler_in_src_p) = { "vif0_clk", "vif1_clk" };
74-
PNAME(mux_hdmi_src_p) = { "vif1_clk", "scaler_clk", "vif0_clk" };
75-
PNAME(mux_dither_src_p) = { "vif0_clk", "scaler_clk" };
76-
PNAME(mux_vif0_src_p) = { "vif0_pre_clk", lcdc0_dclkp_name };
77-
PNAME(mux_vif1_src_p) = { "vif1_pre_clk", lcdc1_dclkp_name };
78-
PNAME(mux_codec_src_p) = { "codec_pre_clk", clkin_name };
69+
PNAME(mux_pll_in_p) = { CNAME("lcdc0_clk"), CNAME("lcdc1_clk"), CNAME("clkin") };
70+
PNAME(mux_pll_src_p) = { CNAME("vif_pll_clk"), CNAME("scaler_pll_clk"), };
71+
PNAME(mux_scaler_in_src_p) = { CNAME("vif0_clk"), CNAME("vif1_clk") };
72+
PNAME(mux_hdmi_src_p) = { CNAME("vif1_clk"), CNAME("scaler_clk"), CNAME("vif0_clk") };
73+
PNAME(mux_dither_src_p) = { CNAME("vif0_clk"), CNAME("scaler_clk") };
74+
PNAME(mux_vif0_src_p) = { CNAME("vif0_pre_clk"), CNAME("lcdc0_dclkp") };
75+
PNAME(mux_vif1_src_p) = { CNAME("vif1_pre_clk"), CNAME("lcdc1_dclkp") };
76+
PNAME(mux_codec_src_p) = { CNAME("codec_pre_clk"), CNAME("clkin") };
7977

8078
/* Two PLL, one for dual datarate input logic, the other for scaler */
8179
static const struct clk_pll_data rk618_clk_plls[] = {
82-
RK618_PLL(VIF_PLL_CLK, "vif_pll_clk", "vif_pllin_clk",
80+
RK618_PLL(VIF_PLL_CLK, CNAME("vif_pll_clk"), CNAME("vif_pllin_clk"),
8381
RK618_CRU_PLL0_CON0,
8482
0),
85-
RK618_PLL(SCALER_PLL_CLK, "scaler_pll_clk", "scaler_pllin_clk",
83+
RK618_PLL(SCALER_PLL_CLK, CNAME("scaler_pll_clk"), CNAME("scaler_pllin_clk"),
8684
RK618_CRU_PLL1_CON0,
8785
0),
8886
};
8987

9088
static const struct clk_mux_data rk618_clk_muxes[] = {
91-
MUX(VIF_PLLIN_CLK, "vif_pllin_clk", mux_pll_in_p,
89+
MUX(VIF_PLLIN_CLK, CNAME("vif_pllin_clk"), mux_pll_in_p,
9290
RK618_CRU_CLKSEL0, 6, 2,
9391
0),
94-
MUX(SCALER_PLLIN_CLK, "scaler_pllin_clk", mux_pll_in_p,
92+
MUX(SCALER_PLLIN_CLK, CNAME("scaler_pllin_clk"), mux_pll_in_p,
9593
RK618_CRU_CLKSEL0, 8, 2,
9694
0),
97-
MUX(SCALER_IN_CLK, "scaler_in_clk", mux_scaler_in_src_p,
95+
MUX(SCALER_IN_CLK, CNAME("scaler_in_clk"), mux_scaler_in_src_p,
9896
RK618_CRU_CLKSEL3, 15, 1,
9997
0),
100-
MUX(DITHER_CLK, "dither_clk", mux_dither_src_p,
98+
MUX(DITHER_CLK, CNAME("dither_clk"), mux_dither_src_p,
10199
RK618_CRU_CLKSEL3, 14, 1,
102100
0),
103-
MUX(VIF0_CLK, "vif0_clk", mux_vif0_src_p,
101+
MUX(VIF0_CLK, CNAME("vif0_clk"), mux_vif0_src_p,
104102
RK618_CRU_CLKSEL3, 1, 1,
105103
CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT),
106-
MUX(VIF1_CLK, "vif1_clk", mux_vif1_src_p,
104+
MUX(VIF1_CLK, CNAME("vif1_clk"), mux_vif1_src_p,
107105
RK618_CRU_CLKSEL3, 7, 1,
108106
CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT),
109-
MUX(CODEC_CLK, "codec_clk", mux_codec_src_p,
107+
MUX(CODEC_CLK, CNAME("codec_clk"), mux_codec_src_p,
110108
RK618_CRU_CLKSEL1, 1, 1,
111109
CLK_SET_RATE_PARENT),
112110
};
113111

114112
static const struct clk_divider_data rk618_clk_dividers[] = {
115-
DIV(LCDC0_CLK, "lcdc0_clk", lcdc0_dclkp_name,
113+
DIV(LCDC0_CLK, CNAME("lcdc0_clk"), CNAME("lcdc0_dclkp"),
116114
RK618_CRU_CLKSEL0, 0, 3,
117115
0),
118-
DIV(LCDC1_CLK, "lcdc1_clk", lcdc1_dclkp_name,
116+
DIV(LCDC1_CLK, CNAME("lcdc1_clk"), CNAME("lcdc1_dclkp"),
119117
RK618_CRU_CLKSEL0, 3, 3,
120118
0),
121119
};
122120

123121
static const struct clk_gate_data rk618_clk_gates[] = {
124-
GATE(MIPI_CLK, "mipi_clk", "dither_clk",
122+
GATE(MIPI_CLK, CNAME("mipi_clk"), CNAME("dither_clk"),
125123
RK618_CRU_CLKSEL1, 10,
126124
CLK_IGNORE_UNUSED),
127-
GATE(LVDS_CLK, "lvds_clk", "dither_clk",
125+
GATE(LVDS_CLK, CNAME("lvds_clk"), CNAME("dither_clk"),
128126
RK618_CRU_CLKSEL1, 9,
129127
CLK_IGNORE_UNUSED),
130-
GATE(LVTTL_CLK, "lvttl_clk", "dither_clk",
128+
GATE(LVTTL_CLK, CNAME("lvttl_clk"), CNAME("dither_clk"),
131129
RK618_CRU_CLKSEL1, 12,
132130
0),
133-
GATE(RGB_CLK, "rgb_clk", "dither_clk",
131+
GATE(RGB_CLK, CNAME("rgb_clk"), CNAME("dither_clk"),
134132
RK618_CRU_CLKSEL1, 11,
135133
0),
136134
};
137135

138136
static const struct clk_composite_data rk618_clk_composites[] = {
139-
COMPOSITE(SCALER_CLK, "scaler_clk", mux_pll_src_p,
137+
COMPOSITE(SCALER_CLK, CNAME("scaler_clk"), mux_pll_src_p,
140138
RK618_CRU_CLKSEL1, 3, 1,
141139
RK618_CRU_CLKSEL1, 5, 3,
142140
RK618_CRU_CLKSEL1, 4,
143141
CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT),
144-
COMPOSITE_NODIV(HDMI_CLK, "hdmi_clk", mux_hdmi_src_p,
142+
COMPOSITE_NODIV(HDMI_CLK, CNAME("hdmi_clk"), mux_hdmi_src_p,
145143
RK618_CRU_CLKSEL3, 12, 2,
146144
RK618_CRU_CLKSEL1, 8,
147145
0),
148-
COMPOSITE(VIF0_PRE_CLK, "vif0_pre_clk", mux_pll_src_p,
146+
COMPOSITE(VIF0_PRE_CLK, CNAME("vif0_pre_clk"), mux_pll_src_p,
149147
RK618_CRU_CLKSEL3, 0, 1,
150148
RK618_CRU_CLKSEL3, 3, 3,
151149
RK618_CRU_CLKSEL3, 2,
152150
CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT),
153-
COMPOSITE(VIF1_PRE_CLK, "vif1_pre_clk", mux_pll_src_p,
151+
COMPOSITE(VIF1_PRE_CLK, CNAME("vif1_pre_clk"), mux_pll_src_p,
154152
RK618_CRU_CLKSEL3, 6, 1,
155153
RK618_CRU_CLKSEL3, 9, 3,
156154
RK618_CRU_CLKSEL3, 8,
157155
CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT),
158-
COMPOSITE_FRAC_NOGATE(0, "codec_pre_clk", mux_pll_src_p,
156+
COMPOSITE_FRAC_NOGATE(0, CNAME("codec_pre_clk"), mux_pll_src_p,
159157
RK618_CRU_CLKSEL1, 0, 1,
160158
RK618_CRU_CLKSEL2,
161159
0),
@@ -303,9 +301,7 @@ static int rk618_cru_probe(struct platform_device *pdev)
303301
struct device *dev = &pdev->dev;
304302
struct rk618_cru *cru;
305303
struct clk **clk_table;
306-
const char *parent_name;
307-
struct clk *clk;
308-
int ret, i;
304+
int i;
309305

310306
if (!of_device_is_available(dev->of_node))
311307
return -ENODEV;
@@ -329,47 +325,6 @@ static int rk618_cru_probe(struct platform_device *pdev)
329325
cru->clk_data.clk_num = NR_CLKS;
330326
platform_set_drvdata(pdev, cru);
331327

332-
clk = devm_clk_get(dev, "clkin");
333-
if (IS_ERR(clk)) {
334-
ret = PTR_ERR(clk);
335-
dev_err(dev, "failed to get clkin: %d\n", ret);
336-
return ret;
337-
}
338-
339-
strlcpy(clkin_name, __clk_get_name(clk), sizeof(clkin_name));
340-
341-
clk = devm_clk_get(dev, "lcdc0_dclkp");
342-
if (IS_ERR(clk)) {
343-
if (PTR_ERR(clk) != -ENOENT) {
344-
ret = PTR_ERR(clk);
345-
dev_err(dev, "failed to get lcdc0_dclkp: %d\n", ret);
346-
return ret;
347-
}
348-
349-
clk = NULL;
350-
}
351-
352-
parent_name = __clk_get_name(clk);
353-
if (parent_name)
354-
strlcpy(lcdc0_dclkp_name, parent_name,
355-
sizeof(lcdc0_dclkp_name));
356-
357-
clk = devm_clk_get(dev, "lcdc1_dclkp");
358-
if (IS_ERR(clk)) {
359-
if (PTR_ERR(clk) != -ENOENT) {
360-
ret = PTR_ERR(clk);
361-
dev_err(dev, "failed to get lcdc1_dclkp: %d\n", ret);
362-
return ret;
363-
}
364-
365-
clk = NULL;
366-
}
367-
368-
parent_name = __clk_get_name(clk);
369-
if (parent_name)
370-
strlcpy(lcdc1_dclkp_name, parent_name,
371-
sizeof(lcdc1_dclkp_name));
372-
373328
rk618_clk_register_plls(cru);
374329
rk618_clk_register_muxes(cru);
375330
rk618_clk_register_dividers(cru);

0 commit comments

Comments
 (0)