diff options
author | Tero Kristo <t-kristo@ti.com> | 2017-07-26 16:47:27 +0300 |
---|---|---|
committer | Tero Kristo <t-kristo@ti.com> | 2018-03-08 11:42:04 +0200 |
commit | 4902c2025b8ade9c230d4bca25ec5f691e91cb1f (patch) | |
tree | 96ec1d931a1c4c67ea9a7e852d9db8b963e1be73 /include/linux/clk | |
parent | be02637f6b741875aa0779c35f31591738aa2cd9 (diff) | |
download | linux-stable-4902c2025b8ade9c230d4bca25ec5f691e91cb1f.tar.gz linux-stable-4902c2025b8ade9c230d4bca25ec5f691e91cb1f.tar.bz2 linux-stable-4902c2025b8ade9c230d4bca25ec5f691e91cb1f.zip |
clk: ti: add support for register read-modify-write low-level operation
Useful for changing few bits on a register, this makes sure for example
that the operation is done atomically in case of syscon.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Diffstat (limited to 'include/linux/clk')
-rw-r--r-- | include/linux/clk/ti.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h index d18da839b810..9e8611470187 100644 --- a/include/linux/clk/ti.h +++ b/include/linux/clk/ti.h @@ -211,6 +211,7 @@ enum { * struct ti_clk_ll_ops - low-level ops for clocks * @clk_readl: pointer to register read function * @clk_writel: pointer to register write function + * @clk_rmw: pointer to register read-modify-write function * @clkdm_clk_enable: pointer to clockdomain enable function * @clkdm_clk_disable: pointer to clockdomain disable function * @clkdm_lookup: pointer to clockdomain lookup function @@ -226,6 +227,7 @@ enum { struct ti_clk_ll_ops { u32 (*clk_readl)(const struct clk_omap_reg *reg); void (*clk_writel)(u32 val, const struct clk_omap_reg *reg); + void (*clk_rmw)(u32 val, u32 mask, const struct clk_omap_reg *reg); int (*clkdm_clk_enable)(struct clockdomain *clkdm, struct clk *clk); int (*clkdm_clk_disable)(struct clockdomain *clkdm, struct clk *clk); |