This patchset adds support for the Everest Semi ES8328 audio codec, used in the Novena open source laptop. It also adds support for using the es8328 on IMX boards. We write a machine driver rather than using simple-card because the machine driver needs to support regulators for the speaker amps and as well as supporting headphone jacks, in addition to the i.MX audmux routing. Changes since v6: - Minor clarification of AUDMUX in imx-audio-es8328.txt - Use u32 instead of int in imx-es8328.c for int-mux and ext-mux - Bounds checking on mux-int-port and mux-ext-port in imx-es8328.c - Remove NULL checks before calling of_node_put() Changes since v5: - Removed empty imx_set_frequency function from imx-es8328.c - Move the clock from imx-audio-es8328 to the es8328 codec itself - Add support for 2x (22.5792 MHz) and 1x (11.2896 MHz) source clocks - Restore registers on resume - Document pins for ES8328, including input pins Changes since v4: - Simplify clock handling and use assigned-clock-parents - Move the codec regulator from the machine driver to the codec - Specify all four regulators, and require their presence - Fix audio recording, such that it enables the PGA Changes since v3: - Add OF bindings for everest,es8328 - Add back in patch to add everest as a vendor prefix - Give clocks more generic names - Document required clocks in DT bindings document Changes since v2: - Change deemph to a bool, and update based on sample rate - Replace value enums with regular enums - Break SPI and I2C drivers into their own modules - Rename everest,es8328 to es8328 as the module wasn't getting detected. Because of this, the patch to vendor-prefixes.txt has been dropped. Changes since v1: - Rename HP/Speaker to OUT1/OUT2 - Use DAPM widgets for startup/shutdown - Add regulator support to machine driver Sean Cross (3): devicetree: bindings: Add Everest Semicodunctor ASoC: add es8328 codec driver ASoC: fsl: add imx-es8328 machine driver Documentation/devicetree/bindings/sound/es8328.txt | 38 ++ .../devicetree/bindings/sound/imx-audio-es8328.txt | 61 ++ .../devicetree/bindings/vendor-prefixes.txt | 1 + sound/soc/codecs/Kconfig | 13 + sound/soc/codecs/Makefile | 6 + sound/soc/codecs/es8328-i2c.c | 60 ++ sound/soc/codecs/es8328-spi.c | 49 ++ sound/soc/codecs/es8328.c | 719 +++++++++++++++++++++ sound/soc/codecs/es8328.h | 314 +++++++++ sound/soc/fsl/Kconfig | 14 + sound/soc/fsl/Makefile | 2 + sound/soc/fsl/imx-es8328.c | 233 +++++++ 12 files changed, 1510 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/es8328.txt create mode 100644 Documentation/devicetree/bindings/sound/imx-audio-es8328.txt create mode 100644 sound/soc/codecs/es8328-i2c.c create mode 100644 sound/soc/codecs/es8328-spi.c create mode 100644 sound/soc/codecs/es8328.c create mode 100644 sound/soc/codecs/es8328.h create mode 100644 sound/soc/fsl/imx-es8328.c -- 2.0.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html