The following introduces common clk support based on the Linux common clk support and switches the i.MX architecture over to use it. For i.MX we now have real drivers for the clk support. I have taken the approach that all clocks we need are enabled from the driver, so we do not need to support all the gates which lowers the overhead of the clock support quite a bit. This series has been tested on all i.MX SoCs except the i.MX21 (which I still don't have). Sascha ---------------------------------------------------------------- Sascha Hauer (23): err.h: introduce IS_ERR_OR_NULL clk clkdev: Add clkdev matching based on physbase clk: initial common clk support commands: Add clk commands ARM i.MX: initial clk support ARM i.MX27: implement clk support ARM i.MX25: Switch to common clk support ARM i.MX5: Switch to common clk support ARM i.MX1: Switch to common clk support ARM i.MX31: Switch to common clk ARM i.MX6: Switch to common clk ARM i.MX21: Switch to common clk ARM i.MX35: Switch to common clk net fec: Switch to clk support serial i.MX: Switch to clk support spi i.MX: Switch to clk support ARM i.MX: Switch clocksource to clk_get mci i.MX ESDHC: Switch to clock support mci i.MX: Switch to clock support i2c i.MX: Switch to clock support video i.MX: Switch to clock support video i.MX IPU: Switch to clock support ARM i.MX: Remove old clock support arch/arm/Kconfig | 2 + arch/arm/mach-imx/Kconfig | 8 - arch/arm/mach-imx/Makefile | 21 +- arch/arm/mach-imx/clk-imx1.c | 108 ++++++++ arch/arm/mach-imx/clk-imx21.c | 119 ++++++++ arch/arm/mach-imx/clk-imx25.c | 154 +++++++++++ arch/arm/mach-imx/clk-imx27.c | 154 +++++++++++ arch/arm/mach-imx/clk-imx31.c | 133 +++++++++ arch/arm/mach-imx/clk-imx35.c | 186 +++++++++++++ arch/arm/mach-imx/clk-imx5.c | 298 ++++++++++++++++++++ arch/arm/mach-imx/clk-imx6.c | 306 +++++++++++++++++++++ arch/arm/mach-imx/clk-pfd.c | 148 ++++++++++ arch/arm/mach-imx/{speed.c => clk-pllv1.c} | 70 +++-- arch/arm/mach-imx/clk-pllv2.c | 164 +++++++++++ arch/arm/mach-imx/clk-pllv3.c | 386 ++++++++++++++++++++++++++ arch/arm/mach-imx/clk.h | 66 +++++ arch/arm/mach-imx/clko.c | 60 ----- arch/arm/mach-imx/clocksource.c | 18 +- arch/arm/mach-imx/imx1.c | 3 +- arch/arm/mach-imx/imx21.c | 1 + arch/arm/mach-imx/imx25.c | 3 +- arch/arm/mach-imx/imx27.c | 4 +- arch/arm/mach-imx/imx31.c | 3 +- arch/arm/mach-imx/imx35.c | 3 +- arch/arm/mach-imx/imx51.c | 3 +- arch/arm/mach-imx/imx53.c | 3 +- arch/arm/mach-imx/imx6.c | 3 +- arch/arm/mach-imx/include/mach/clkdev.h | 7 + arch/arm/mach-imx/include/mach/clock.h | 42 +-- arch/arm/mach-imx/speed-imx1.c | 91 ------- arch/arm/mach-imx/speed-imx21.c | 193 ------------- arch/arm/mach-imx/speed-imx25.c | 155 ----------- arch/arm/mach-imx/speed-imx27.c | 227 ---------------- arch/arm/mach-imx/speed-imx31.c | 79 ------ arch/arm/mach-imx/speed-imx35.c | 255 ------------------ arch/arm/mach-imx/speed-imx51.c | 311 --------------------- arch/arm/mach-imx/speed-imx53.c | 236 ---------------- arch/arm/mach-imx/speed-imx6.c | 404 ---------------------------- commands/Kconfig | 8 + commands/Makefile | 1 + commands/clk.c | 133 +++++++++ drivers/clk/Kconfig | 3 + drivers/clk/Makefile | 2 +- drivers/clk/clk-divider.c | 98 +++++++ drivers/clk/clk-fixed-factor.c | 63 +++++ drivers/clk/clk-fixed.c | 55 ++++ drivers/clk/clk-mux.c | 77 ++++++ drivers/clk/clk.c | 224 +++++++++++++++ drivers/clk/clkdev.c | 47 ++++ drivers/i2c/busses/i2c-imx.c | 23 +- drivers/mci/imx-esdhc.c | 16 +- drivers/mci/imx.c | 15 +- drivers/net/fec_imx.c | 27 +- drivers/net/fec_imx.h | 1 + drivers/serial/serial_imx.c | 18 +- drivers/spi/imx_spi.c | 13 +- drivers/video/imx-ipu-fb.c | 10 +- drivers/video/imx.c | 10 +- include/linux/clk.h | 42 +++ include/linux/clkdev.h | 3 + include/linux/err.h | 5 + 61 files changed, 3184 insertions(+), 2137 deletions(-) create mode 100644 arch/arm/mach-imx/clk-imx1.c create mode 100644 arch/arm/mach-imx/clk-imx21.c create mode 100644 arch/arm/mach-imx/clk-imx25.c create mode 100644 arch/arm/mach-imx/clk-imx27.c create mode 100644 arch/arm/mach-imx/clk-imx31.c create mode 100644 arch/arm/mach-imx/clk-imx35.c create mode 100644 arch/arm/mach-imx/clk-imx5.c create mode 100644 arch/arm/mach-imx/clk-imx6.c create mode 100644 arch/arm/mach-imx/clk-pfd.c rename arch/arm/mach-imx/{speed.c => clk-pllv1.c} (53%) create mode 100644 arch/arm/mach-imx/clk-pllv2.c create mode 100644 arch/arm/mach-imx/clk-pllv3.c create mode 100644 arch/arm/mach-imx/clk.h delete mode 100644 arch/arm/mach-imx/clko.c create mode 100644 arch/arm/mach-imx/include/mach/clkdev.h delete mode 100644 arch/arm/mach-imx/speed-imx1.c delete mode 100644 arch/arm/mach-imx/speed-imx21.c delete mode 100644 arch/arm/mach-imx/speed-imx25.c delete mode 100644 arch/arm/mach-imx/speed-imx27.c delete mode 100644 arch/arm/mach-imx/speed-imx31.c delete mode 100644 arch/arm/mach-imx/speed-imx35.c delete mode 100644 arch/arm/mach-imx/speed-imx51.c delete mode 100644 arch/arm/mach-imx/speed-imx53.c delete mode 100644 arch/arm/mach-imx/speed-imx6.c create mode 100644 commands/clk.c create mode 100644 drivers/clk/clk-divider.c create mode 100644 drivers/clk/clk-fixed-factor.c create mode 100644 drivers/clk/clk-fixed.c create mode 100644 drivers/clk/clk-mux.c create mode 100644 drivers/clk/clk.c _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox