Skip to content

Commit a69cd91

Browse files
committed
Merge tag 'sunxi-clk-for-5.16-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner
Pull Allwinner clk driver updates from Maxime Ripard: Our usual PR for the Allwinner SoCs, this time improving the module support and converting to more helpers. * tag 'sunxi-clk-for-5.16-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: clk: sunxi: sun8i-apb0: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi: sun6i-ar100: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi: sun6i-apb0-gates: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi: sun6i-apb0: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi-ng: ccu-sun9i-a80-usb: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi-ng: ccu-sun9i-a80-de: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi-ng: ccu-sun9i-a80: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi-ng: ccu-sun8i-r40: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi-ng: ccu-sun8i-de2: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi-ng: ccu-sun8i-a83t: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi-ng: ccu-sun50i-h6: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi-ng: ccu-sun50i-a64: Make use of the helper function devm_platform_ioremap_resource() clk: sunxi: clk-mod0: Make use of the helper function devm_platform_ioremap_resource() dt-bindings: clocks: Fix typo in the H6 compatible clk: sunxi-ng: Use a separate lock for each CCU instance clk: sunxi-ng: Prevent unbinding CCUs via sysfs clk: sunxi-ng: Unregister clocks/resets when unbinding clk: sunxi-ng: Add machine dependency to A83T CCU clk: sunxi-ng: mux: Remove unused 'reg' field
2 parents 6880fa6 + e65d38e commit a69cd91

31 files changed

+127
-85
lines changed

Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ properties:
2424
- const: allwinner,sun8i-v3s-de2-clk
2525
- const: allwinner,sun50i-a64-de2-clk
2626
- const: allwinner,sun50i-h5-de2-clk
27-
- const: allwinner,sun50i-h6-de2-clk
27+
- const: allwinner,sun50i-h6-de3-clk
2828
- items:
2929
- const: allwinner,sun8i-r40-de2-clk
3030
- const: allwinner,sun8i-h3-de2-clk

drivers/clk/sunxi-ng/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ config SUN8I_A33_CCU
7171
config SUN8I_A83T_CCU
7272
bool "Support for the Allwinner A83T CCU"
7373
default MACH_SUN8I
74+
depends on MACH_SUN8I || COMPILE_TEST
7475

7576
config SUN8I_H3_CCU
7677
bool "Support for the Allwinner H3 CCU"

drivers/clk/sunxi-ng/ccu-sun4i-a10.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1464,7 +1464,7 @@ static void __init sun4i_ccu_init(struct device_node *node,
14641464
val &= ~GENMASK(7, 6);
14651465
writel(val | (2 << 6), reg + SUN4I_AHB_REG);
14661466

1467-
sunxi_ccu_probe(node, reg, desc);
1467+
of_sunxi_ccu_probe(node, reg, desc);
14681468
}
14691469

14701470
static void __init sun4i_a10_ccu_setup(struct device_node *node)

drivers/clk/sunxi-ng/ccu-sun50i-a100-r.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ static int sun50i_a100_r_ccu_probe(struct platform_device *pdev)
196196
if (IS_ERR(reg))
197197
return PTR_ERR(reg);
198198

199-
return sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a100_r_ccu_desc);
199+
return devm_sunxi_ccu_probe(&pdev->dev, reg, &sun50i_a100_r_ccu_desc);
200200
}
201201

202202
static const struct of_device_id sun50i_a100_r_ccu_ids[] = {
@@ -208,6 +208,7 @@ static struct platform_driver sun50i_a100_r_ccu_driver = {
208208
.probe = sun50i_a100_r_ccu_probe,
209209
.driver = {
210210
.name = "sun50i-a100-r-ccu",
211+
.suppress_bind_attrs = true,
211212
.of_match_table = sun50i_a100_r_ccu_ids,
212213
},
213214
};

drivers/clk/sunxi-ng/ccu-sun50i-a100.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1247,7 +1247,7 @@ static int sun50i_a100_ccu_probe(struct platform_device *pdev)
12471247
writel(val, reg + sun50i_a100_usb2_clk_regs[i]);
12481248
}
12491249

1250-
ret = sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a100_ccu_desc);
1250+
ret = devm_sunxi_ccu_probe(&pdev->dev, reg, &sun50i_a100_ccu_desc);
12511251
if (ret)
12521252
return ret;
12531253

@@ -1270,6 +1270,7 @@ static struct platform_driver sun50i_a100_ccu_driver = {
12701270
.probe = sun50i_a100_ccu_probe,
12711271
.driver = {
12721272
.name = "sun50i-a100-ccu",
1273+
.suppress_bind_attrs = true,
12731274
.of_match_table = sun50i_a100_ccu_ids,
12741275
},
12751276
};

drivers/clk/sunxi-ng/ccu-sun50i-a64.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -938,13 +938,11 @@ static struct ccu_mux_nb sun50i_a64_cpu_nb = {
938938

939939
static int sun50i_a64_ccu_probe(struct platform_device *pdev)
940940
{
941-
struct resource *res;
942941
void __iomem *reg;
943942
u32 val;
944943
int ret;
945944

946-
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
947-
reg = devm_ioremap_resource(&pdev->dev, res);
945+
reg = devm_platform_ioremap_resource(pdev, 0);
948946
if (IS_ERR(reg))
949947
return PTR_ERR(reg);
950948

@@ -955,7 +953,7 @@ static int sun50i_a64_ccu_probe(struct platform_device *pdev)
955953

956954
writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG);
957955

958-
ret = sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a64_ccu_desc);
956+
ret = devm_sunxi_ccu_probe(&pdev->dev, reg, &sun50i_a64_ccu_desc);
959957
if (ret)
960958
return ret;
961959

@@ -978,6 +976,7 @@ static struct platform_driver sun50i_a64_ccu_driver = {
978976
.probe = sun50i_a64_ccu_probe,
979977
.driver = {
980978
.name = "sun50i-a64-ccu",
979+
.suppress_bind_attrs = true,
981980
.of_match_table = sun50i_a64_ccu_ids,
982981
},
983982
};

drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ static void __init sunxi_r_ccu_init(struct device_node *node,
232232
return;
233233
}
234234

235-
sunxi_ccu_probe(node, reg, desc);
235+
of_sunxi_ccu_probe(node, reg, desc);
236236
}
237237

238238
static void __init sun50i_h6_r_ccu_setup(struct device_node *node)

drivers/clk/sunxi-ng/ccu-sun50i-h6.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,13 +1183,11 @@ static const u32 usb2_clk_regs[] = {
11831183

11841184
static int sun50i_h6_ccu_probe(struct platform_device *pdev)
11851185
{
1186-
struct resource *res;
11871186
void __iomem *reg;
11881187
u32 val;
11891188
int i;
11901189

1191-
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1192-
reg = devm_ioremap_resource(&pdev->dev, res);
1190+
reg = devm_platform_ioremap_resource(pdev, 0);
11931191
if (IS_ERR(reg))
11941192
return PTR_ERR(reg);
11951193

@@ -1240,7 +1238,7 @@ static int sun50i_h6_ccu_probe(struct platform_device *pdev)
12401238
val |= BIT(24);
12411239
writel(val, reg + SUN50I_H6_HDMI_CEC_CLK_REG);
12421240

1243-
return sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_h6_ccu_desc);
1241+
return devm_sunxi_ccu_probe(&pdev->dev, reg, &sun50i_h6_ccu_desc);
12441242
}
12451243

12461244
static const struct of_device_id sun50i_h6_ccu_ids[] = {
@@ -1252,6 +1250,7 @@ static struct platform_driver sun50i_h6_ccu_driver = {
12521250
.probe = sun50i_h6_ccu_probe,
12531251
.driver = {
12541252
.name = "sun50i-h6-ccu",
1253+
.suppress_bind_attrs = true,
12551254
.of_match_table = sun50i_h6_ccu_ids,
12561255
},
12571256
};

drivers/clk/sunxi-ng/ccu-sun50i-h616.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,9 +1141,7 @@ static void __init sun50i_h616_ccu_setup(struct device_node *node)
11411141
val |= BIT(24);
11421142
writel(val, reg + SUN50I_H616_HDMI_CEC_CLK_REG);
11431143

1144-
i = sunxi_ccu_probe(node, reg, &sun50i_h616_ccu_desc);
1145-
if (i)
1146-
pr_err("%pOF: probing clocks fails: %d\n", node, i);
1144+
of_sunxi_ccu_probe(node, reg, &sun50i_h616_ccu_desc);
11471145
}
11481146

11491147
CLK_OF_DECLARE(sun50i_h616_ccu, "allwinner,sun50i-h616-ccu",

drivers/clk/sunxi-ng/ccu-sun5i.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1012,7 +1012,7 @@ static void __init sun5i_ccu_init(struct device_node *node,
10121012
val &= ~GENMASK(7, 6);
10131013
writel(val | (2 << 6), reg + SUN5I_AHB_REG);
10141014

1015-
sunxi_ccu_probe(node, reg, desc);
1015+
of_sunxi_ccu_probe(node, reg, desc);
10161016
}
10171017

10181018
static void __init sun5i_a10s_ccu_setup(struct device_node *node)

0 commit comments

Comments
 (0)