The i.MX8MP has some new IPs called mixes. They are formed usually by some GPRs that can be split into different functionalities. The first example here is the audiomix which has dedicated registers that can be registered as a clock controller and some other registers that can be registered as a reset controller, plus some dedicated ones that will be registered as syscon and used by each dedicated audio IP. More mixes to be following the same structure are to come, like hdmimix, dispmix and mediamix. They will all be populated and registered by the MFD imx-mix generic driver. Abel Vesa (11): mfd: Add i.MX generic mix support arm64: dts: imx8mp: Add AIPS 4 and 5 arm64: dts: imx8mp: Add audiomix node clk: imx: Add gate shared for i.MX8MP audiomix clk: imx: pll14xx: Add the device as argument when registering clk: imx: Add helpers for passing the device as argument dt-bindings: clocks: imx8mp: Add ids for audiomix clocks clk: imx: Add audiomix clock controller support arm64: dts: imx8mp: Add audiomix clock controller node reset: imx: Add audiomix reset controller support arm64: dts: imx8mp: Add audiomix reset controller node arch/arm64/boot/dts/freescale/imx8mp.dtsi | 37 ++++ drivers/clk/imx/Makefile | 2 +- drivers/clk/imx/clk-audiomix.c | 237 +++++++++++++++++++++++++ drivers/clk/imx/clk-gate-shared.c | 111 ++++++++++++ drivers/clk/imx/clk-pll14xx.c | 6 +- drivers/clk/imx/clk.h | 46 ++++- drivers/mfd/Kconfig | 11 ++ drivers/mfd/Makefile | 1 + drivers/mfd/imx-mix.c | 48 +++++ drivers/reset/Kconfig | 7 + drivers/reset/Makefile | 1 + drivers/reset/reset-imx-audiomix.c | 122 +++++++++++++ include/dt-bindings/clock/imx8mp-clock.h | 62 +++++++ include/dt-bindings/reset/imx-audiomix-reset.h | 15 ++ 14 files changed, 699 insertions(+), 7 deletions(-) create mode 100644 drivers/clk/imx/clk-audiomix.c create mode 100644 drivers/clk/imx/clk-gate-shared.c create mode 100644 drivers/mfd/imx-mix.c create mode 100644 drivers/reset/reset-imx-audiomix.c create mode 100644 include/dt-bindings/reset/imx-audiomix-reset.h -- 2.7.4