diff options
| author | Imran Shaik <quic_imrashai@quicinc.com> | 2023-05-12 17:53:43 +0530 | 
|---|---|---|
| committer | Bjorn Andersson <andersson@kernel.org> | 2023-05-24 21:47:17 -0700 | 
| commit | 9092d1083a6253757c7f9449340173443c81768c (patch) | |
| tree | 3090419f961313acae68d3c871a0284e8e8da0a9 | |
| parent | 521302ca64f28161c12cb29949566a450d24a98f (diff) | |
clk: qcom: branch: Extend the invert logic for branch2 clocks
Add support to handle the invert logic for branch2 clocks.
Invert branch halt would indicate the clock ON when CLK_OFF
bit is '1' and OFF when CLK_OFF bit is '0'.
Signed-off-by: Imran Shaik <quic_imrashai@quicinc.com>
Signed-off-by: Taniya Das <quic_tdas@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230512122347.1219-2-quic_tdas@quicinc.com
| -rw-r--r-- | drivers/clk/qcom/clk-branch.c | 6 | 
1 files changed, 3 insertions, 3 deletions
| diff --git a/drivers/clk/qcom/clk-branch.c b/drivers/clk/qcom/clk-branch.c index ca896ebf7e1b..fc4735f74f0f 100644 --- a/drivers/clk/qcom/clk-branch.c +++ b/drivers/clk/qcom/clk-branch.c @@ -43,6 +43,7 @@ static bool clk_branch2_check_halt(const struct clk_branch *br, bool enabling)  {  	u32 val;  	u32 mask; +	bool invert = (br->halt_check == BRANCH_HALT_ENABLE);  	mask = CBCR_NOC_FSM_STATUS;  	mask |= CBCR_CLK_OFF; @@ -51,11 +52,10 @@ static bool clk_branch2_check_halt(const struct clk_branch *br, bool enabling)  	if (enabling) {  		val &= mask; -		return (val & CBCR_CLK_OFF) == 0 || +		return (val & CBCR_CLK_OFF) == (invert ? CBCR_CLK_OFF : 0) ||  			FIELD_GET(CBCR_NOC_FSM_STATUS, val) == FSM_STATUS_ON; -	} else { -		return val & CBCR_CLK_OFF;  	} +	return (val & CBCR_CLK_OFF) == (invert ? 0 : CBCR_CLK_OFF);  }  static int clk_branch_wait(const struct clk_branch *br, bool enabling, | 
