Re: [RFC PATCH v3 12/35] drivers/clk/renesas: clk-sh7750.c SH7750/7751 CPG driver.
Geert Uytterhoeven <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.kernel.clk |
|---|---|
| Message-ID | <CAMuHMdVtNcUAh5ZeeXyfvS+F=zyJ_4KFoEYxuXONMJ_xH1zwDg@mail.gmail.com> |
Hi Sato-san, On Sat, Oct 14, 2023 at 4:54 PM Yoshinori Sato <[email protected]> wrote: > This driver supported SH7750/7751 PLL/Divider clock and module stop. > > Signed-off-by: Yoshinori Sato <[email protected]> Thanks for your patch! > --- /dev/null > +++ b/drivers/clk/renesas/clk-sh7750.c > +static void sbcr_sw(struct clk_hw *hw, bool on) > +{ > + struct clk_gate *gate = to_clk_gate(hw); > + u8 msk = BIT(gate->bit_idx); > + u8 val; > + > + val = readb(gate->reg); > + if (on) > + val &= ~msk; > + else > + val |= msk; > + writeb(val, gate->reg); > +} > + > +static int sbcr_enable(struct clk_hw *hw) > +{ > + sbcr_sw(hw, true); > + return 0; > +} > + > +static void sbcr_disable(struct clk_hw *hw) > +{ > + sbcr_sw(hw, false); > +} > + > +static int sbcr_is_enabled(struct clk_hw *hw) > +{ > + u8 val; > + struct clk_gate *gate = to_clk_gate(hw); > + > + val = readb(gate->reg); > + val &= 1 << gate->bit_idx; > + return val != 0; This condition is inverted: 0 is enabled, 1 is stopped. > +} Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds