[PATCH v4 0/3] clk: Add regmap support for clk mulitplexer

Matthias Brugger matthias.bgg at gmail.com
Tue Jun 16 07:23:32 PDT 2015


This patch set adds regmap support for the simple clock multiplexer,
the divider clock and the clock gate.
Regmap use, apart from a pointer to the regmap struct, needs an
offset value to know where in the regmap it has to read/write.
We add both fields to the corresponding structs.

The driver will distinguish between a clock which is based on regmap or not
through a flag specified in the clock hardware struct.
The approach does not break the existing clock framework API but adds
new functions for registering regmap clocks. Unregistering the clocks is
independent of the use of regmap or not, so that no new functions were
implemented.

As an example user of the regmap clock multiplexer, it was implemented on
the mt8135. When accepted it will also be applied to the other Mediatek SoCs.
Other possible user are Qualcomm SoCs which up to now implement their own
regmap based clock multiplexer.

This patch set is based on linux next.
To get the mt8135 eval board up and running, we need to enable the clock
support [1] and use the two clocks for the uart port [2].

Any comments welcome.

[1] https://patchwork.kernel.org/patch/6261141/
[2] https://patchwork.kernel.org/patch/6261151/

Changes for v4:
- fix style issues
- use __clk_get_flags
- delete #ifdef CONFIG_REGMAP

Changes for v3:
- rebase against linux-next
- provide regmap access to all three clock types in a unified way

Changes for v2:
- use regmap_update_bits instead of read-write
- fix flag check
- add union in struct clk_mux
- fix typo in commit message

---

Matthias Brugger (3):
  clk: Add regmap support
  clk: mediatek: Add support for clk-mux using regmap
  clk: mediatek: Use regmap clk-mux for mt8135

 drivers/clk/Makefile              |  1 +
 drivers/clk/clk-divider.c         | 68 ++++++++++++++++++++++------
 drivers/clk/clk-gate.c            | 57 +++++++++++++++++++-----
 drivers/clk/clk-io.c              | 48 ++++++++++++++++++++
 drivers/clk/clk-io.h              | 22 +++++++++
 drivers/clk/clk-mux.c             | 94 ++++++++++++++++++++++++++++++++-------
 drivers/clk/mediatek/clk-mt8135.c | 21 +++------
 drivers/clk/mediatek/clk-mtk.c    | 37 +++++++++++++++
 drivers/clk/mediatek/clk-mtk.h    | 26 +++++++++++
 include/linux/clk-provider.h      | 54 ++++++++++++++++++++--
 10 files changed, 370 insertions(+), 58 deletions(-)
 create mode 100644 drivers/clk/clk-io.c
 create mode 100644 drivers/clk/clk-io.h

-- 
1.9.1




More information about the linux-arm-kernel mailing list