On Tue, Aug 15, 2023 at 04:52:02PM +0800, Luo Jie wrote: > Add the clk_branch2_mdio_ops for supporting clock controller > where the hardware register is accessed by MDIO bus, and the > spin clock can't be used because of sleep during the MDIO spin clock? I believe you're trying to say that the underlying access to the MDIO bus can not be done in non-sleepable context and we can therefor not use enable/disable to operate it? > operation. > > The clock is enabled by the .prepare instead of .enable when > the clk_branch2_mdio_ops is used. > > Signed-off-by: Luo Jie <quic_luoj@xxxxxxxxxxx> > --- > drivers/clk/qcom/clk-branch.c | 7 +++++++ > drivers/clk/qcom/clk-branch.h | 1 + > 2 files changed, 8 insertions(+) > > diff --git a/drivers/clk/qcom/clk-branch.c b/drivers/clk/qcom/clk-branch.c > index fc4735f74f0f..5e08c026ca4a 100644 > --- a/drivers/clk/qcom/clk-branch.c > +++ b/drivers/clk/qcom/clk-branch.c > @@ -153,3 +153,10 @@ const struct clk_ops clk_branch_simple_ops = { > .is_enabled = clk_is_enabled_regmap, > }; > EXPORT_SYMBOL_GPL(clk_branch_simple_ops); > + > +const struct clk_ops clk_branch2_mdio_ops = { > + .prepare = clk_branch2_enable, > + .unprepare = clk_branch2_disable, I see none of the clocks specify halt_check, which would imply that these two calls just turns into clk_enable_regmap() and clk_disable_regmap(). So, isn't this then equivalent to clk_branch_simple_ops? Regards, Bjorn > + .is_prepared = clk_is_enabled_regmap, > +}; > +EXPORT_SYMBOL_GPL(clk_branch2_mdio_ops); > diff --git a/drivers/clk/qcom/clk-branch.h b/drivers/clk/qcom/clk-branch.h > index 0cf800b9d08d..4b006e8eec5e 100644 > --- a/drivers/clk/qcom/clk-branch.h > +++ b/drivers/clk/qcom/clk-branch.h > @@ -85,6 +85,7 @@ extern const struct clk_ops clk_branch_ops; > extern const struct clk_ops clk_branch2_ops; > extern const struct clk_ops clk_branch_simple_ops; > extern const struct clk_ops clk_branch2_aon_ops; > +extern const struct clk_ops clk_branch2_mdio_ops; > > #define to_clk_branch(_hw) \ > container_of(to_clk_regmap(_hw), struct clk_branch, clkr) > -- > 2.17.1 >