Skip to content

Commit 6b33a05

Browse files
joakimtoe1igorpecovnik
authored andcommitted
Fix H616 HDMI audio clocking
Fix HDMI audio on H616/H618 boards using the Armbian sunxi64 current and edge kernel patch stacks. On Orange Pi Zero 2W / H618, HDMI video worked and the HDMI ALSA card was created correctly. ELD was valid, ASoC routing was active, DW-HDMI I2S setup was reached, and PCM playback entered RUNNING, but no audible sound was produced by the TV. The failure needs both AHUB clock path correction and AHUB BCLK divider correction. A BCLK-only test programmed SUNXI_AHUB_I2S_CLKD(1) to the working 0x90 value, but left audio-hub at 43 MHz with pll-audio-hs/pll-audio-4x at 688 MHz and remained silent. This change folds the HDMI audio fix into the already-applied H616 digital audio patch for sunxi-6.18 and sunxi-7.0: - expose CLK_PLL_AUDIO_HS and CLK_PLL_AUDIO_4X to DT - use those real audio PLL clocks for AHUB DAM instead of audio-codec clocks - remove the fixed post divider from pll-audio-hs so exact SDM audio rates are used - parent the AHUB module clock to pll-audio-4x - set the AHUB module clock to the full requested rate instead of freq_out / 2 - program the AHUB BCLK divider field with the raw divider map value instead of bclk_ratio - 2 - make the HDMI controller node a DAI provider with #sound-dai-cells = <0>, so the local hdmi-audio-fix overlay is no longer needed Validated on Orange Pi Zero 2W / H618 with 48 kHz S16_LE and S32_LE HDMI speaker-test playback. The working runtime state has pll-audio-hs, pll-audio-4x, and audio-hub at 98.304 MHz, with SUNXI_AHUB_I2S_CLKD(1) programmed to 0x90. The final test was run without the hdmi-audio-fix overlay; HDMI still registered and ELD remained valid. Signed-off-by: joakimtoe <joakimtoe@gmail.com>
1 parent 05895f6 commit 6b33a05

2 files changed

Lines changed: 314 additions & 14 deletions

File tree

patch/kernel/archive/sunxi-6.18/patches.armbian/0702-arm64-dts-sun50i-h616-add-digital-audio-node.patch

Lines changed: 157 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,48 @@
11
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2-
From: The-going <48602507+The-going@users.noreply.github.com>
3-
Date: Mon, 26 May 2025 17:04:56 +0300
4-
Subject: sun50i-h616: Add the missing digital audio node
2+
From: joakimtoe <joakimtoe@gmail.com>
3+
Date: Sun, 31 May 2026 15:50:00 +0200
4+
Subject: sun50i-h616: Add digital audio node and fix HDMI audio clocking
55

6+
Add the missing AHUB DAM machine node and fix the H616/H618 HDMI audio
7+
clock path so the AHUB uses the real audio PLL family. HDMI audio can
8+
otherwise reach ALSA RUNNING state while staying silent because the AHUB
9+
is clocked from the audio-codec path and because the I2S BCLK divider is
10+
programmed two steps below the vendor divider value.
11+
12+
Expose the real audio PLL clock IDs, allow pll-audio-hs to use the exact
13+
sigma-delta rates, parent the audio-hub module clock to pll-audio-4x, set
14+
the module clock to the full requested rate, and write the raw AHUB BCLK
15+
divider map value.
16+
17+
On Orange Pi Zero 2W / H618 this makes 48 kHz stereo HDMI playback use
18+
pll-audio-hs/pll-audio-4x/audio-hub at 98.304 MHz and programs
19+
SUNXI_AHUB_I2S_CLKD(1) to 0x90.
20+
21+
Signed-off-by: joakimtoe <joakimtoe@gmail.com>
622
---
7-
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 11 ++++++++++
8-
1 file changed, 11 insertions(+)
23+
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 16 ++++++++++++++--
24+
drivers/clk/sunxi-ng/ccu-sun50i-h616.c | 4 +---
25+
include/dt-bindings/clock/sun50i-h616-ccu.h | 2 ++
26+
sound/soc/sunxi_v2/snd_sunxi_ahub.c | 4 ++--
27+
sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c | 28 +++++++++++++------------
28+
5 files changed, 34 insertions(+), 20 deletions(-)
929

1030
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
1131
index 111111111111..222222222222 100644
1232
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
1333
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
14-
@@ -852,6 +852,17 @@ ahub_dam_plat:ahub_dam_plat@5097000 {
34+
@@ -1085,8 +1085,8 @@ ahub_dam_plat:ahub_dam_plat@5097000 {
35+
compatible = "allwinner,sunxi-snd-plat-ahub_dam";
36+
reg = <0x05097000 0x1000>;
37+
resets = <&ccu RST_BUS_AUDIO_HUB>;
38+
- clocks = <&ccu CLK_AUDIO_CODEC_1X>,
39+
- <&ccu CLK_AUDIO_CODEC_4X>,
40+
+ clocks = <&ccu CLK_PLL_AUDIO_HS>,
41+
+ <&ccu CLK_PLL_AUDIO_4X>,
42+
<&ccu CLK_AUDIO_HUB>,
43+
<&ccu CLK_BUS_AUDIO_HUB>;
44+
clock-names = "clk_pll_audio",
45+
@@ -1096,6 +1096,17 @@ ahub_dam_plat:ahub_dam_plat@5097000 {
1546
status = "disabled";
1647
};
1748

@@ -29,6 +60,125 @@ index 111111111111..222222222222 100644
2960
ahub1_plat:ahub1_plat {
3061
#sound-dai-cells = <0>;
3162
compatible = "allwinner,sunxi-snd-plat-ahub";
63+
@@ -1301,0 +1312,1 @@ hdmi: hdmi@6000000 {
64+
+ #sound-dai-cells = <0>;
65+
diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h616.c b/drivers/clk/sunxi-ng/ccu-sun50i-h616.c
66+
index 111111111111..222222222222 100644
67+
--- a/drivers/clk/sunxi-ng/ccu-sun50i-h616.c
68+
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-h616.c
69+
@@ -232,14 +232,12 @@ static struct ccu_nm pll_audio_hs_clk = {
70+
.enable = BIT(31),
71+
.lock = BIT(28),
72+
.n = _SUNXI_CCU_MULT_MIN(8, 8, 12),
73+
.m = _SUNXI_CCU_DIV(16, 6),
74+
.sdm = _SUNXI_CCU_SDM(pll_audio_sdm_table,
75+
BIT(24), 0x178, BIT(31)),
76+
- .fixed_post_div = 2,
77+
.common = {
78+
- .features = CCU_FEATURE_FIXED_POSTDIV |
79+
- CCU_FEATURE_SIGMA_DELTA_MOD,
80+
+ .features = CCU_FEATURE_SIGMA_DELTA_MOD,
81+
.reg = 0x078,
82+
.hw.init = CLK_HW_INIT("pll-audio-hs", "osc24M",
83+
&ccu_nm_ops,
84+
CLK_SET_RATE_UNGATE),
85+
diff --git a/include/dt-bindings/clock/sun50i-h616-ccu.h b/include/dt-bindings/clock/sun50i-h616-ccu.h
86+
index 111111111111..222222222222 100644
87+
--- a/include/dt-bindings/clock/sun50i-h616-ccu.h
88+
+++ b/include/dt-bindings/clock/sun50i-h616-ccu.h
89+
@@ -7,6 +7,8 @@
90+
#define _DT_BINDINGS_CLK_SUN50I_H616_H_
91+
92+
#define CLK_PLL_PERIPH0 4
93+
+#define CLK_PLL_AUDIO_HS 17
94+
+#define CLK_PLL_AUDIO_4X 20
95+
96+
#define CLK_CPUX 21
97+
98+
diff --git a/sound/soc/sunxi_v2/snd_sunxi_ahub.c b/sound/soc/sunxi_v2/snd_sunxi_ahub.c
99+
index 111111111111..222222222222 100644
100+
--- a/sound/soc/sunxi_v2/snd_sunxi_ahub.c
101+
+++ b/sound/soc/sunxi_v2/snd_sunxi_ahub.c
102+
@@ -100,7 +100,7 @@ static int sunxi_ahub_dai_set_pll(struct snd_soc_dai *dai,
103+
return -EINVAL;
104+
}
105+
}
106+
- if (clk_set_rate(clk_info->clk_module, freq_out / 2)) {
107+
+ if (clk_set_rate(clk_info->clk_module, freq_out)) {
108+
SND_LOG_ERR(HLOG, "freq : %u module clk unsupport\n", freq_out);
109+
return -EINVAL;
110+
}
111+
@@ -275,7 +275,7 @@ static int sunxi_ahub_dai_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int
112+
113+
regmap_update_bits(regmap, SUNXI_AHUB_I2S_CLKD(tdm_num),
114+
0xf << I2S_CLKD_BCLKDIV,
115+
- (bclk_ratio - 2) << I2S_CLKD_BCLKDIV);
116+
+ bclk_ratio << I2S_CLKD_BCLKDIV);
117+
118+
return 0;
119+
}
120+
diff --git a/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c b/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c
121+
index 111111111111..222222222222 100644
122+
--- a/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c
123+
+++ b/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c
124+
@@ -370,19 +370,19 @@ static int snd_soc_sunxi_ahub_clk_init(struct platform_device *pdev,
125+
ret = -EBUSY;
126+
goto err_pll_clk;
127+
}
128+
- //clk_info->clk_pllx4 = of_clk_get_by_name(np, "clk_pll_audio_4x");
129+
- //if (IS_ERR_OR_NULL(clk_info->clk_pllx4)) {
130+
- // SND_LOG_ERR(HLOG, "clk pllx4 get failed\n");
131+
- // ret = -EBUSY;
132+
- // goto err_pllx4_clk;
133+
- //}
134+
+ clk_info->clk_pllx4 = of_clk_get_by_name(np, "clk_pll_audio_4x");
135+
+ if (IS_ERR_OR_NULL(clk_info->clk_pllx4)) {
136+
+ SND_LOG_ERR(HLOG, "clk pllx4 get failed\n");
137+
+ ret = -EBUSY;
138+
+ goto err_pllx4_clk;
139+
+ }
140+
141+
/* set ahub clk parent */
142+
- //if (clk_set_parent(clk_info->clk_module, clk_info->clk_pllx4)) {
143+
- // SND_LOG_ERR(HLOG, "set parent of clk_module to pllx4 failed\n");
144+
- // ret = -EINVAL;
145+
- // goto err_set_parent_clk;
146+
- //}
147+
+ if (clk_set_parent(clk_info->clk_module, clk_info->clk_pllx4)) {
148+
+ SND_LOG_ERR(HLOG, "set parent of clk_module to pllx4 failed\n");
149+
+ ret = -EINVAL;
150+
+ goto err_set_parent_clk;
151+
+ }
152+
153+
/* enable clk of ahub */
154+
if (clk_prepare_enable(clk_info->clk_pll)) {
155+
@@ -400,13 +400,11 @@ static int snd_soc_sunxi_ahub_clk_init(struct platform_device *pdev,
156+
return 0;
157+
158+
err_module_clk_enable:
159+
-// clk_disable_unprepare(clk_info->clk_pllx4);
160+
-//err_pllx4_clk_enable:
161+
clk_disable_unprepare(clk_info->clk_pll);
162+
err_pll_clk_enable:
163+
-//err_set_parent_clk:
164+
-// clk_put(clk_info->clk_pllx4);
165+
-//err_pllx4_clk:
166+
-// clk_put(clk_info->clk_pll);
167+
+err_set_parent_clk:
168+
+ clk_put(clk_info->clk_pllx4);
169+
+err_pllx4_clk:
170+
+ clk_put(clk_info->clk_pll);
171+
err_pll_clk:
172+
clk_put(clk_info->clk_module);
173+
@@ -481,8 +479,7 @@ static int sunxi_ahub_dam_dev_remove(struct platform_device *pdev)
174+
clk_put(clk_info->clk_module);
175+
clk_disable_unprepare(clk_info->clk_pll);
176+
clk_put(clk_info->clk_pll);
177+
- //clk_disable_unprepare(clk_info->clk_pllx4);
178+
- //clk_put(clk_info->clk_pllx4);
179+
+ clk_put(clk_info->clk_pllx4);
180+
clk_disable_unprepare(clk_info->clk_bus);
181+
clk_put(clk_info->clk_bus);
182+
reset_control_assert(clk_info->clk_rst);
32183
--
33184
Armbian
34-

patch/kernel/archive/sunxi-7.0/patches.armbian/0702-arm64-dts-sun50i-h616-add-digital-audio-node.patch

Lines changed: 157 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,48 @@
11
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2-
From: The-going <48602507+The-going@users.noreply.github.com>
3-
Date: Mon, 26 May 2025 17:04:56 +0300
4-
Subject: sun50i-h616: Add the missing digital audio node
2+
From: joakimtoe <joakimtoe@gmail.com>
3+
Date: Sun, 31 May 2026 15:50:00 +0200
4+
Subject: sun50i-h616: Add digital audio node and fix HDMI audio clocking
55

6+
Add the missing AHUB DAM machine node and fix the H616/H618 HDMI audio
7+
clock path so the AHUB uses the real audio PLL family. HDMI audio can
8+
otherwise reach ALSA RUNNING state while staying silent because the AHUB
9+
is clocked from the audio-codec path and because the I2S BCLK divider is
10+
programmed two steps below the vendor divider value.
11+
12+
Expose the real audio PLL clock IDs, allow pll-audio-hs to use the exact
13+
sigma-delta rates, parent the audio-hub module clock to pll-audio-4x, set
14+
the module clock to the full requested rate, and write the raw AHUB BCLK
15+
divider map value.
16+
17+
On Orange Pi Zero 2W / H618 this makes 48 kHz stereo HDMI playback use
18+
pll-audio-hs/pll-audio-4x/audio-hub at 98.304 MHz and programs
19+
SUNXI_AHUB_I2S_CLKD(1) to 0x90.
20+
21+
Signed-off-by: joakimtoe <joakimtoe@gmail.com>
622
---
7-
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 11 ++++++++++
8-
1 file changed, 11 insertions(+)
23+
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 16 ++++++++++++++--
24+
drivers/clk/sunxi-ng/ccu-sun50i-h616.c | 4 +---
25+
include/dt-bindings/clock/sun50i-h616-ccu.h | 2 ++
26+
sound/soc/sunxi_v2/snd_sunxi_ahub.c | 4 ++--
27+
sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c | 28 +++++++++++++------------
28+
5 files changed, 34 insertions(+), 20 deletions(-)
929

1030
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
1131
index 111111111111..222222222222 100644
1232
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
1333
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
14-
@@ -904,6 +904,17 @@ ahub_dam_plat:ahub_dam_plat@5097000 {
34+
@@ -1085,8 +1085,8 @@ ahub_dam_plat:ahub_dam_plat@5097000 {
35+
compatible = "allwinner,sunxi-snd-plat-ahub_dam";
36+
reg = <0x05097000 0x1000>;
37+
resets = <&ccu RST_BUS_AUDIO_HUB>;
38+
- clocks = <&ccu CLK_AUDIO_CODEC_1X>,
39+
- <&ccu CLK_AUDIO_CODEC_4X>,
40+
+ clocks = <&ccu CLK_PLL_AUDIO_HS>,
41+
+ <&ccu CLK_PLL_AUDIO_4X>,
42+
<&ccu CLK_AUDIO_HUB>,
43+
<&ccu CLK_BUS_AUDIO_HUB>;
44+
clock-names = "clk_pll_audio",
45+
@@ -1096,6 +1096,17 @@ ahub_dam_plat:ahub_dam_plat@5097000 {
1546
status = "disabled";
1647
};
1748

@@ -29,6 +60,125 @@ index 111111111111..222222222222 100644
2960
ahub1_plat:ahub1_plat {
3061
#sound-dai-cells = <0>;
3162
compatible = "allwinner,sunxi-snd-plat-ahub";
63+
@@ -1301,0 +1312,1 @@ hdmi: hdmi@6000000 {
64+
+ #sound-dai-cells = <0>;
65+
diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h616.c b/drivers/clk/sunxi-ng/ccu-sun50i-h616.c
66+
index 111111111111..222222222222 100644
67+
--- a/drivers/clk/sunxi-ng/ccu-sun50i-h616.c
68+
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-h616.c
69+
@@ -232,14 +232,12 @@ static struct ccu_nm pll_audio_hs_clk = {
70+
.enable = BIT(31),
71+
.lock = BIT(28),
72+
.n = _SUNXI_CCU_MULT_MIN(8, 8, 12),
73+
.m = _SUNXI_CCU_DIV(16, 6),
74+
.sdm = _SUNXI_CCU_SDM(pll_audio_sdm_table,
75+
BIT(24), 0x178, BIT(31)),
76+
- .fixed_post_div = 2,
77+
.common = {
78+
- .features = CCU_FEATURE_FIXED_POSTDIV |
79+
- CCU_FEATURE_SIGMA_DELTA_MOD,
80+
+ .features = CCU_FEATURE_SIGMA_DELTA_MOD,
81+
.reg = 0x078,
82+
.hw.init = CLK_HW_INIT("pll-audio-hs", "osc24M",
83+
&ccu_nm_ops,
84+
CLK_SET_RATE_UNGATE),
85+
diff --git a/include/dt-bindings/clock/sun50i-h616-ccu.h b/include/dt-bindings/clock/sun50i-h616-ccu.h
86+
index 111111111111..222222222222 100644
87+
--- a/include/dt-bindings/clock/sun50i-h616-ccu.h
88+
+++ b/include/dt-bindings/clock/sun50i-h616-ccu.h
89+
@@ -7,6 +7,8 @@
90+
#define _DT_BINDINGS_CLK_SUN50I_H616_H_
91+
92+
#define CLK_PLL_PERIPH0 4
93+
+#define CLK_PLL_AUDIO_HS 17
94+
+#define CLK_PLL_AUDIO_4X 20
95+
96+
#define CLK_CPUX 21
97+
98+
diff --git a/sound/soc/sunxi_v2/snd_sunxi_ahub.c b/sound/soc/sunxi_v2/snd_sunxi_ahub.c
99+
index 111111111111..222222222222 100644
100+
--- a/sound/soc/sunxi_v2/snd_sunxi_ahub.c
101+
+++ b/sound/soc/sunxi_v2/snd_sunxi_ahub.c
102+
@@ -100,7 +100,7 @@ static int sunxi_ahub_dai_set_pll(struct snd_soc_dai *dai,
103+
return -EINVAL;
104+
}
105+
}
106+
- if (clk_set_rate(clk_info->clk_module, freq_out / 2)) {
107+
+ if (clk_set_rate(clk_info->clk_module, freq_out)) {
108+
SND_LOG_ERR(HLOG, "freq : %u module clk unsupport\n", freq_out);
109+
return -EINVAL;
110+
}
111+
@@ -275,7 +275,7 @@ static int sunxi_ahub_dai_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int
112+
113+
regmap_update_bits(regmap, SUNXI_AHUB_I2S_CLKD(tdm_num),
114+
0xf << I2S_CLKD_BCLKDIV,
115+
- (bclk_ratio - 2) << I2S_CLKD_BCLKDIV);
116+
+ bclk_ratio << I2S_CLKD_BCLKDIV);
117+
118+
return 0;
119+
}
120+
diff --git a/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c b/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c
121+
index 111111111111..222222222222 100644
122+
--- a/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c
123+
+++ b/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c
124+
@@ -370,19 +370,19 @@ static int snd_soc_sunxi_ahub_clk_init(struct platform_device *pdev,
125+
ret = -EBUSY;
126+
goto err_pll_clk;
127+
}
128+
- //clk_info->clk_pllx4 = of_clk_get_by_name(np, "clk_pll_audio_4x");
129+
- //if (IS_ERR_OR_NULL(clk_info->clk_pllx4)) {
130+
- // SND_LOG_ERR(HLOG, "clk pllx4 get failed\n");
131+
- // ret = -EBUSY;
132+
- // goto err_pllx4_clk;
133+
- //}
134+
+ clk_info->clk_pllx4 = of_clk_get_by_name(np, "clk_pll_audio_4x");
135+
+ if (IS_ERR_OR_NULL(clk_info->clk_pllx4)) {
136+
+ SND_LOG_ERR(HLOG, "clk pllx4 get failed\n");
137+
+ ret = -EBUSY;
138+
+ goto err_pllx4_clk;
139+
+ }
140+
141+
/* set ahub clk parent */
142+
- //if (clk_set_parent(clk_info->clk_module, clk_info->clk_pllx4)) {
143+
- // SND_LOG_ERR(HLOG, "set parent of clk_module to pllx4 failed\n");
144+
- // ret = -EINVAL;
145+
- // goto err_set_parent_clk;
146+
- //}
147+
+ if (clk_set_parent(clk_info->clk_module, clk_info->clk_pllx4)) {
148+
+ SND_LOG_ERR(HLOG, "set parent of clk_module to pllx4 failed\n");
149+
+ ret = -EINVAL;
150+
+ goto err_set_parent_clk;
151+
+ }
152+
153+
/* enable clk of ahub */
154+
if (clk_prepare_enable(clk_info->clk_pll)) {
155+
@@ -400,13 +400,11 @@ static int snd_soc_sunxi_ahub_clk_init(struct platform_device *pdev,
156+
return 0;
157+
158+
err_module_clk_enable:
159+
-// clk_disable_unprepare(clk_info->clk_pllx4);
160+
-//err_pllx4_clk_enable:
161+
clk_disable_unprepare(clk_info->clk_pll);
162+
err_pll_clk_enable:
163+
-//err_set_parent_clk:
164+
-// clk_put(clk_info->clk_pllx4);
165+
-//err_pllx4_clk:
166+
-// clk_put(clk_info->clk_pll);
167+
+err_set_parent_clk:
168+
+ clk_put(clk_info->clk_pllx4);
169+
+err_pllx4_clk:
170+
+ clk_put(clk_info->clk_pll);
171+
err_pll_clk:
172+
clk_put(clk_info->clk_module);
173+
@@ -481,8 +479,7 @@ static int sunxi_ahub_dam_dev_remove(struct platform_device *pdev)
174+
clk_put(clk_info->clk_module);
175+
clk_disable_unprepare(clk_info->clk_pll);
176+
clk_put(clk_info->clk_pll);
177+
- //clk_disable_unprepare(clk_info->clk_pllx4);
178+
- //clk_put(clk_info->clk_pllx4);
179+
+ clk_put(clk_info->clk_pllx4);
180+
clk_disable_unprepare(clk_info->clk_bus);
181+
clk_put(clk_info->clk_bus);
182+
reset_control_assert(clk_info->clk_rst);
32183
--
33184
Armbian
34-

0 commit comments

Comments
 (0)