[PATCH 1/1] clk: qcom: ipq8074: set BRANCH_HALT_VOTED flag for usb master clocks
From: Chukun Pan
Date: Thu Sep 10 2026 - 06:29:17 EST
Currently, on some boards with older versions of U-Boot, attempting
to disable usb master clocks results in a "stuck at on" warning:
[ 3.005088] gcc_usb1_master_clk status stuck at 'on'
[ 3.187119] gcc_usb0_master_clk status stuck at 'on'
The USB master clocks of IPQ5332 and IPQ5424 have the BRANCH_HALT_VOTED
flag set, so let's do the same to fix the issue.
Signed-off-by: Chukun Pan <amadeus@xxxxxxxxxx>
---
These boards run a vendor-specific version of U-Boot, and upgrading to
a newer version could brick the device. Therefore, I think this should
be fixed within the Linux kernel.
---
drivers/clk/qcom/gcc-ipq8074.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/clk/qcom/gcc-ipq8074.c b/drivers/clk/qcom/gcc-ipq8074.c
index 1329ea28d703..10bd2f80010c 100644
--- a/drivers/clk/qcom/gcc-ipq8074.c
+++ b/drivers/clk/qcom/gcc-ipq8074.c
@@ -2612,6 +2612,7 @@ static struct clk_branch gcc_sys_noc_usb0_axi_clk = {
static struct clk_branch gcc_usb0_master_clk = {
.halt_reg = 0x3e000,
+ .halt_check = BRANCH_HALT_VOTED,
.clkr = {
.enable_reg = 0x3e000,
.enable_mask = BIT(0),
@@ -2725,6 +2726,7 @@ static struct clk_branch gcc_sys_noc_usb1_axi_clk = {
static struct clk_branch gcc_usb1_master_clk = {
.halt_reg = 0x3f000,
+ .halt_check = BRANCH_HALT_VOTED,
.clkr = {
.enable_reg = 0x3f000,
.enable_mask = BIT(0),
--
2.34.1