From 48282cfa9f7c2cdcc159696cc8b0b08f806b2ffb Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Sat, 24 Mar 2012 11:33:59 +0000 Subject: [PATCH] --- yaml --- r: 295976 b: refs/heads/master c: a754a87ce8b17024358c1be8ee0232ef09a7055f h: refs/heads/master v: v3 --- [refs] | 2 +- .../devicetree/bindings/sound/alc5632.txt | 24 + .../devicetree/bindings/sound/imx-audmux.txt | 13 + .../codecs/fsl-sgtl5000.txt => sgtl5000.txt} | 0 .../bindings/sound/tegra-audio-alc5632.txt | 59 + .../devicetree/bindings/vendor-prefixes.txt | 1 + trunk/Documentation/driver-model/devres.txt | 3 + trunk/arch/arm/mach-ep93xx/core.c | 19 +- .../arm/mach-ep93xx/include/mach/platform.h | 2 +- trunk/arch/arm/mach-imx/Kconfig | 6 - .../arm/mach-imx/eukrea_mbimx27-baseboard.c | 20 - .../arm/mach-imx/eukrea_mbimxsd-baseboard.c | 1 - .../arm/mach-imx/eukrea_mbimxsd25-baseboard.c | 17 - .../arm/mach-imx/eukrea_mbimxsd35-baseboard.c | 17 - .../arm/mach-imx/mach-imx27_visstrim_m10.c | 1 + trunk/arch/arm/mach-imx/mach-pca100.c | 13 - trunk/arch/arm/mach-imx/mach-pcm043.c | 13 - trunk/arch/arm/mach-imx/mm-imx21.c | 6 + trunk/arch/arm/mach-imx/mm-imx25.c | 7 + trunk/arch/arm/mach-imx/mm-imx27.c | 7 + trunk/arch/arm/mach-imx/mm-imx3.c | 13 + trunk/arch/arm/mach-imx/mm-imx5.c | 22 + trunk/arch/arm/mach-kirkwood/openrd-setup.c | 6 + trunk/arch/arm/mach-kirkwood/t5325-setup.c | 6 + trunk/arch/arm/mach-omap2/board-4430sdp.c | 29 + trunk/arch/arm/mach-omap2/board-omap4panda.c | 60 +- .../arm/mach-s3c64xx/mach-crag6410-module.c | 1 + trunk/arch/arm/mach-shmobile/board-ap4evb.c | 30 +- trunk/arch/arm/mach-shmobile/board-mackerel.c | 18 +- trunk/arch/arm/plat-mxc/Kconfig | 6 - trunk/arch/arm/plat-mxc/Makefile | 2 - trunk/arch/arm/plat-mxc/audmux-v1.c | 64 - trunk/arch/arm/plat-mxc/include/mach/audmux.h | 60 - trunk/arch/mips/jz4740/board-qi_lb60.c | 6 + trunk/arch/sh/boards/mach-ecovec24/setup.c | 4 +- trunk/arch/sh/boards/mach-se/7724/setup.c | 4 +- trunk/drivers/base/regmap/internal.h | 3 + trunk/drivers/base/regmap/regcache.c | 11 + trunk/drivers/base/regmap/regmap.c | 73 + trunk/drivers/regulator/core.c | 108 + trunk/include/linux/mfd/wm8994/pdata.h | 3 + .../linux/platform_data/omap-abe-twl6040.h | 49 + trunk/include/linux/regmap.h | 4 + trunk/include/linux/regulator/consumer.h | 12 + trunk/include/sound/control.h | 2 +- trunk/include/sound/dmaengine_pcm.h | 49 + trunk/include/sound/max9768.h | 24 + trunk/include/sound/pcm.h | 4 + trunk/include/sound/sh_fsi.h | 12 +- trunk/include/sound/soc-dai.h | 11 +- trunk/include/sound/soc-dapm.h | 33 +- trunk/include/sound/soc.h | 45 +- trunk/include/sound/wm2200.h | 41 + trunk/include/sound/wm8962.h | 6 + trunk/sound/core/pcm.c | 99 +- trunk/sound/soc/Kconfig | 3 + trunk/sound/soc/Makefile | 3 + trunk/sound/soc/atmel/atmel-pcm.c | 4 +- trunk/sound/soc/atmel/snd-soc-afeb9260.c | 37 +- trunk/sound/soc/blackfin/bf5xx-ad1836.c | 17 +- trunk/sound/soc/blackfin/bf5xx-ad193x.c | 17 +- trunk/sound/soc/blackfin/bf5xx-ad73311.c | 29 +- trunk/sound/soc/blackfin/bf5xx-ssm2602.c | 20 +- trunk/sound/soc/blackfin/bfin-eval-adau1373.c | 13 +- trunk/sound/soc/blackfin/bfin-eval-adau1701.c | 16 +- trunk/sound/soc/blackfin/bfin-eval-adav80x.c | 13 +- trunk/sound/soc/codecs/Kconfig | 8 + trunk/sound/soc/codecs/Makefile | 4 + trunk/sound/soc/codecs/ad1836.c | 6 +- trunk/sound/soc/codecs/ad1980.c | 2 +- trunk/sound/soc/codecs/adau1373.c | 7 +- trunk/sound/soc/codecs/adau1701.c | 2 +- trunk/sound/soc/codecs/ak4104.c | 174 +- trunk/sound/soc/codecs/ak4535.c | 98 +- trunk/sound/soc/codecs/ak4535.h | 2 - trunk/sound/soc/codecs/ak4642.c | 2 +- trunk/sound/soc/codecs/ak4671.c | 2 +- trunk/sound/soc/codecs/alc5623.c | 12 +- trunk/sound/soc/codecs/alc5632.c | 197 +- trunk/sound/soc/codecs/alc5632.h | 1 + trunk/sound/soc/codecs/cq93vc.c | 4 +- trunk/sound/soc/codecs/cs4270.c | 4 +- trunk/sound/soc/codecs/cs4271.c | 2 +- trunk/sound/soc/codecs/da7210.c | 146 +- trunk/sound/soc/codecs/lm4857.c | 2 +- trunk/sound/soc/codecs/max9768.c | 247 ++ trunk/sound/soc/codecs/max98088.c | 4 +- trunk/sound/soc/codecs/max98095.c | 6 +- trunk/sound/soc/codecs/max9877.c | 2 +- trunk/sound/soc/codecs/sgtl5000.c | 19 +- trunk/sound/soc/codecs/sn95031.c | 5 +- trunk/sound/soc/codecs/ssm2602.c | 2 +- trunk/sound/soc/codecs/stac9766.c | 2 +- trunk/sound/soc/codecs/tlv320aic23.c | 2 +- trunk/sound/soc/codecs/tlv320aic26.c | 2 +- trunk/sound/soc/codecs/tlv320aic32x4.c | 2 +- trunk/sound/soc/codecs/tlv320aic3x.c | 66 +- trunk/sound/soc/codecs/tlv320aic3x.h | 9 - trunk/sound/soc/codecs/tlv320dac33.c | 10 +- trunk/sound/soc/codecs/tpa6130a2.c | 4 +- trunk/sound/soc/codecs/twl4030.c | 42 +- trunk/sound/soc/codecs/twl6040.c | 31 +- trunk/sound/soc/codecs/twl6040.h | 1 + trunk/sound/soc/codecs/uda134x.c | 6 +- trunk/sound/soc/codecs/wl1273.c | 2 +- trunk/sound/soc/codecs/wm2200.c | 2286 ++++++++++ trunk/sound/soc/codecs/wm2200.h | 3674 +++++++++++++++++ trunk/sound/soc/codecs/wm5100.c | 643 ++- trunk/sound/soc/codecs/wm8731.c | 109 +- trunk/sound/soc/codecs/wm8737.c | 2 +- trunk/sound/soc/codecs/wm8753.c | 195 +- trunk/sound/soc/codecs/wm8770.c | 5 +- trunk/sound/soc/codecs/wm8776.c | 8 +- trunk/sound/soc/codecs/wm8804.c | 154 +- trunk/sound/soc/codecs/wm8904.c | 856 ++-- trunk/sound/soc/codecs/wm8904.h | 11 + trunk/sound/soc/codecs/wm8940.c | 16 +- trunk/sound/soc/codecs/wm8955.c | 247 +- trunk/sound/soc/codecs/wm8958-dsp2.c | 14 +- trunk/sound/soc/codecs/wm8960.c | 2 +- trunk/sound/soc/codecs/wm8961.c | 2 +- trunk/sound/soc/codecs/wm8962.c | 2141 ++++------ trunk/sound/soc/codecs/wm8971.c | 37 +- trunk/sound/soc/codecs/wm8974.c | 45 +- trunk/sound/soc/codecs/wm8978.c | 185 +- trunk/sound/soc/codecs/wm8978.h | 2 + trunk/sound/soc/codecs/wm8983.c | 5 - trunk/sound/soc/codecs/wm8985.c | 315 +- trunk/sound/soc/codecs/wm8988.c | 171 +- trunk/sound/soc/codecs/wm8990.c | 2 +- trunk/sound/soc/codecs/wm8991.c | 2 +- trunk/sound/soc/codecs/wm8993.c | 649 ++- trunk/sound/soc/codecs/wm8993.h | 9 + trunk/sound/soc/codecs/wm8994.c | 523 ++- trunk/sound/soc/codecs/wm8994.h | 14 +- trunk/sound/soc/codecs/wm8995.c | 4 +- trunk/sound/soc/codecs/wm8996.c | 253 +- trunk/sound/soc/codecs/wm9081.c | 80 +- trunk/sound/soc/codecs/wm9090.c | 272 +- trunk/sound/soc/codecs/wm9705.c | 2 +- trunk/sound/soc/codecs/wm9712.c | 16 +- trunk/sound/soc/codecs/wm9713.c | 2 +- trunk/sound/soc/codecs/wm_hubs.c | 152 +- trunk/sound/soc/codecs/wm_hubs.h | 12 + trunk/sound/soc/davinci/davinci-pcm.c | 4 +- trunk/sound/soc/ep93xx/Kconfig | 1 + trunk/sound/soc/ep93xx/edb93xx.c | 4 +- trunk/sound/soc/ep93xx/ep93xx-pcm.c | 152 +- trunk/sound/soc/ep93xx/snappercl15.c | 4 +- trunk/sound/soc/fsl/fsl_dma.c | 10 +- trunk/sound/soc/fsl/fsl_ssi.c | 6 +- trunk/sound/soc/fsl/mpc5200_dma.c | 17 +- trunk/sound/soc/fsl/mpc8610_hpcd.c | 18 +- trunk/sound/soc/fsl/p1022_ds.c | 60 +- trunk/sound/soc/imx/Kconfig | 25 +- trunk/sound/soc/imx/Makefile | 15 +- trunk/sound/soc/imx/eukrea-tlv320.c | 40 +- .../soc/imx/imx-audmux.c} | 185 +- trunk/sound/soc/imx/imx-audmux.h | 60 + trunk/sound/soc/imx/imx-pcm-dma-mx2.c | 223 +- trunk/sound/soc/imx/imx-pcm.c | 105 + trunk/sound/soc/imx/imx-pcm.h | 32 + trunk/sound/soc/imx/imx-ssi.c | 118 +- trunk/sound/soc/imx/imx-ssi.h | 16 +- trunk/sound/soc/imx/mx27vis-aic32x4.c | 159 +- trunk/sound/soc/imx/phycore-ac97.c | 27 +- trunk/sound/soc/imx/wm1133-ev1.c | 25 +- trunk/sound/soc/jz4740/qi_lb60.c | 56 +- trunk/sound/soc/kirkwood/kirkwood-dma.c | 4 +- trunk/sound/soc/kirkwood/kirkwood-openrd.c | 46 +- trunk/sound/soc/kirkwood/kirkwood-t5325.c | 47 +- trunk/sound/soc/mid-x86/mfld_machine.c | 2 +- trunk/sound/soc/mxs/Kconfig | 2 +- trunk/sound/soc/mxs/mxs-pcm.c | 157 +- trunk/sound/soc/mxs/mxs-pcm.h | 16 - trunk/sound/soc/mxs/mxs-saif.c | 51 +- trunk/sound/soc/omap/Kconfig | 13 +- trunk/sound/soc/omap/Makefile | 4 +- trunk/sound/soc/omap/ams-delta.c | 2 +- trunk/sound/soc/omap/n810.c | 17 +- trunk/sound/soc/omap/omap-abe-twl6040.c | 349 ++ trunk/sound/soc/omap/omap-dmic.c | 7 +- trunk/sound/soc/omap/omap-mcbsp.c | 8 +- trunk/sound/soc/omap/omap-mcbsp.h | 2 +- trunk/sound/soc/omap/omap-mcpdm.c | 2 + trunk/sound/soc/omap/rx51.c | 25 +- trunk/sound/soc/omap/sdp4430.c | 279 -- trunk/sound/soc/pxa/corgi.c | 14 +- trunk/sound/soc/pxa/magician.c | 2 +- trunk/sound/soc/pxa/poodle.c | 14 +- trunk/sound/soc/pxa/pxa-ssp.c | 64 +- trunk/sound/soc/pxa/pxa2xx-ac97.c | 10 +- trunk/sound/soc/pxa/raumfeld.c | 2 +- trunk/sound/soc/pxa/spitz.c | 14 +- trunk/sound/soc/pxa/tosa.c | 2 +- trunk/sound/soc/s6000/s6000-pcm.c | 5 +- trunk/sound/soc/samsung/ac97.c | 4 +- trunk/sound/soc/samsung/dma.c | 2 +- trunk/sound/soc/samsung/i2s.c | 27 +- trunk/sound/soc/samsung/i2s.h | 2 +- trunk/sound/soc/samsung/littlemill.c | 3 + trunk/sound/soc/samsung/neo1973_wm8753.c | 4 +- trunk/sound/soc/samsung/pcm.c | 4 +- trunk/sound/soc/samsung/s3c24xx_simtec.c | 6 +- trunk/sound/soc/samsung/smdk_wm8580.c | 4 +- trunk/sound/soc/samsung/smdk_wm9713.c | 4 +- trunk/sound/soc/sh/fsi.c | 912 ++-- trunk/sound/soc/soc-core.c | 399 +- trunk/sound/soc/soc-dapm.c | 400 +- trunk/sound/soc/soc-dmaengine-pcm.c | 288 ++ trunk/sound/soc/soc-io.c | 7 + trunk/sound/soc/soc-pcm.c | 104 +- trunk/sound/soc/soc-utils.c | 20 +- trunk/sound/soc/tegra/tegra_alc5632.c | 129 +- trunk/sound/soc/tegra/tegra_pcm.c | 2 +- 215 files changed, 14140 insertions(+), 6282 deletions(-) create mode 100644 trunk/Documentation/devicetree/bindings/sound/alc5632.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/imx-audmux.txt rename trunk/Documentation/devicetree/bindings/sound/{soc/codecs/fsl-sgtl5000.txt => sgtl5000.txt} (100%) create mode 100644 trunk/Documentation/devicetree/bindings/sound/tegra-audio-alc5632.txt delete mode 100644 trunk/arch/arm/plat-mxc/audmux-v1.c delete mode 100644 trunk/arch/arm/plat-mxc/include/mach/audmux.h create mode 100644 trunk/include/linux/platform_data/omap-abe-twl6040.h create mode 100644 trunk/include/sound/dmaengine_pcm.h create mode 100644 trunk/include/sound/max9768.h create mode 100644 trunk/include/sound/wm2200.h create mode 100644 trunk/sound/soc/codecs/max9768.c create mode 100644 trunk/sound/soc/codecs/wm2200.c create mode 100644 trunk/sound/soc/codecs/wm2200.h rename trunk/{arch/arm/plat-mxc/audmux-v2.c => sound/soc/imx/imx-audmux.c} (52%) create mode 100644 trunk/sound/soc/imx/imx-audmux.h create mode 100644 trunk/sound/soc/imx/imx-pcm.c create mode 100644 trunk/sound/soc/imx/imx-pcm.h create mode 100644 trunk/sound/soc/omap/omap-abe-twl6040.c delete mode 100644 trunk/sound/soc/omap/sdp4430.c create mode 100644 trunk/sound/soc/soc-dmaengine-pcm.c diff --git a/[refs] b/[refs] index d5b7ed440c12..f844fcb89674 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 70688056a8b4d610249716befe262a74fd123d90 +refs/heads/master: a754a87ce8b17024358c1be8ee0232ef09a7055f diff --git a/trunk/Documentation/devicetree/bindings/sound/alc5632.txt b/trunk/Documentation/devicetree/bindings/sound/alc5632.txt new file mode 100644 index 000000000000..8608f747dcfe --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/alc5632.txt @@ -0,0 +1,24 @@ +ALC5632 audio CODEC + +This device supports I2C only. + +Required properties: + + - compatible : "realtek,alc5632" + + - reg : the I2C address of the device. + + - gpio-controller : Indicates this device is a GPIO controller. + + - #gpio-cells : Should be two. The first cell is the pin number and the + second cell is used to specify optional parameters (currently unused). + +Example: + +alc5632: alc5632@1e { + compatible = "realtek,alc5632"; + reg = <0x1a>; + + gpio-controller; + #gpio-cells = <2>; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/imx-audmux.txt b/trunk/Documentation/devicetree/bindings/sound/imx-audmux.txt new file mode 100644 index 000000000000..215aa9817213 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/imx-audmux.txt @@ -0,0 +1,13 @@ +Freescale Digital Audio Mux (AUDMUX) device + +Required properties: +- compatible : "fsl,imx21-audmux" for AUDMUX version firstly used on i.MX21, + or "fsl,imx31-audmux" for the version firstly used on i.MX31. +- reg : Should contain AUDMUX registers location and length + +Example: + +audmux@021d8000 { + compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux"; + reg = <0x021d8000 0x4000>; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/soc/codecs/fsl-sgtl5000.txt b/trunk/Documentation/devicetree/bindings/sound/sgtl5000.txt similarity index 100% rename from trunk/Documentation/devicetree/bindings/sound/soc/codecs/fsl-sgtl5000.txt rename to trunk/Documentation/devicetree/bindings/sound/sgtl5000.txt diff --git a/trunk/Documentation/devicetree/bindings/sound/tegra-audio-alc5632.txt b/trunk/Documentation/devicetree/bindings/sound/tegra-audio-alc5632.txt new file mode 100644 index 000000000000..b77a97c9101e --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/tegra-audio-alc5632.txt @@ -0,0 +1,59 @@ +NVIDIA Tegra audio complex + +Required properties: +- compatible : "nvidia,tegra-audio-alc5632" +- nvidia,model : The user-visible name of this sound complex. +- nvidia,audio-routing : A list of the connections between audio components. + Each entry is a pair of strings, the first being the connection's sink, + the second being the connection's source. Valid names for sources and + sinks are the ALC5632's pins: + + ALC5632 pins: + + * SPK_OUTP + * SPK_OUTN + * HP_OUT_L + * HP_OUT_R + * AUX_OUT_P + * AUX_OUT_N + * LINE_IN_L + * LINE_IN_R + * PHONE_P + * PHONE_N + * MIC1_P + * MIC1_N + * MIC2_P + * MIC2_N + * MICBIAS1 + * DMICDAT + + Board connectors: + + * Headset Stereophone + * Int Spk + * Headset Mic + * Digital Mic + +- nvidia,i2s-controller : The phandle of the Tegra I2S controller +- nvidia,audio-codec : The phandle of the ALC5632 audio codec + +Example: + +sound { + compatible = "nvidia,tegra-audio-alc5632-paz00", + "nvidia,tegra-audio-alc5632"; + + nvidia,model = "Compal PAZ00"; + + nvidia,audio-routing = + "Int Spk", "SPK_OUTP", + "Int Spk", "SPK_OUTN", + "Headset Mic","MICBIAS1", + "MIC1_N", "Headset Mic", + "MIC1_P", "Headset Mic", + "Headset Stereophone", "HP_OUT_R", + "Headset Stereophone", "HP_OUT_L"; + + nvidia,i2s-controller = <&tegra_i2s1>; + nvidia,audio-codec = <&alc5632>; +}; diff --git a/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt b/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt index a20008ab319a..82ac057a24a9 100644 --- a/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -34,6 +34,7 @@ picochip Picochip Ltd powervr Imagination Technologies qcom Qualcomm, Inc. ramtron Ramtron International +realtek Realtek Semiconductor Corp. samsung Samsung Semiconductor sbs Smart Battery System schindler Schindler diff --git a/trunk/Documentation/driver-model/devres.txt b/trunk/Documentation/driver-model/devres.txt index 41c0c5d1ba14..b49829eca792 100644 --- a/trunk/Documentation/driver-model/devres.txt +++ b/trunk/Documentation/driver-model/devres.txt @@ -271,3 +271,6 @@ IOMAP pcim_iounmap() pcim_iomap_table() : array of mapped addresses indexed by BAR pcim_iomap_regions() : do request_region() and iomap() on multiple BARs + +REGULATOR + devm_regulator_get() diff --git a/trunk/arch/arm/mach-ep93xx/core.c b/trunk/arch/arm/mach-ep93xx/core.c index 903edb02fe4f..41f0d680c5e1 100644 --- a/trunk/arch/arm/mach-ep93xx/core.c +++ b/trunk/arch/arm/mach-ep93xx/core.c @@ -783,23 +783,12 @@ void __init ep93xx_register_i2s(void) #define EP93XX_I2SCLKDIV_MASK (EP93XX_SYSCON_I2SCLKDIV_ORIDE | \ EP93XX_SYSCON_I2SCLKDIV_SPOL) -int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config) +int ep93xx_i2s_acquire(void) { unsigned val; - /* Sanity check */ - if (i2s_pins & ~EP93XX_SYSCON_DEVCFG_I2S_MASK) - return -EINVAL; - if (i2s_config & ~EP93XX_I2SCLKDIV_MASK) - return -EINVAL; - - /* Must have only one of I2SONSSP/I2SONAC97 set */ - if ((i2s_pins & EP93XX_SYSCON_DEVCFG_I2SONSSP) == - (i2s_pins & EP93XX_SYSCON_DEVCFG_I2SONAC97)) - return -EINVAL; - - ep93xx_devcfg_clear_bits(EP93XX_SYSCON_DEVCFG_I2S_MASK); - ep93xx_devcfg_set_bits(i2s_pins); + ep93xx_devcfg_set_clear(EP93XX_SYSCON_DEVCFG_I2SONAC97, + EP93XX_SYSCON_DEVCFG_I2S_MASK); /* * This is potentially racy with the clock api for i2s_mclk, sclk and @@ -809,7 +798,7 @@ int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config) */ val = __raw_readl(EP93XX_SYSCON_I2SCLKDIV); val &= ~EP93XX_I2SCLKDIV_MASK; - val |= i2s_config; + val |= EP93XX_SYSCON_I2SCLKDIV_ORIDE | EP93XX_SYSCON_I2SCLKDIV_SPOL; ep93xx_syscon_swlocked_write(val, EP93XX_SYSCON_I2SCLKDIV); return 0; diff --git a/trunk/arch/arm/mach-ep93xx/include/mach/platform.h b/trunk/arch/arm/mach-ep93xx/include/mach/platform.h index d4c934931f9d..ad63d4be693f 100644 --- a/trunk/arch/arm/mach-ep93xx/include/mach/platform.h +++ b/trunk/arch/arm/mach-ep93xx/include/mach/platform.h @@ -59,7 +59,7 @@ void ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data); int ep93xx_keypad_acquire_gpio(struct platform_device *pdev); void ep93xx_keypad_release_gpio(struct platform_device *pdev); void ep93xx_register_i2s(void); -int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config); +int ep93xx_i2s_acquire(void); void ep93xx_i2s_release(void); void ep93xx_register_ac97(void); diff --git a/trunk/arch/arm/mach-imx/Kconfig b/trunk/arch/arm/mach-imx/Kconfig index 96b1f62c3929..37a5d715a6c2 100644 --- a/trunk/arch/arm/mach-imx/Kconfig +++ b/trunk/arch/arm/mach-imx/Kconfig @@ -46,7 +46,6 @@ config SOC_IMX21 bool select MACH_MX21 select CPU_ARM926T - select ARCH_MXC_AUDMUX_V1 select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 select MXC_AVIC @@ -55,7 +54,6 @@ config SOC_IMX25 bool select ARCH_MX25 select CPU_ARM926T - select ARCH_MXC_AUDMUX_V2 select ARCH_MXC_IOMUX_V3 select MXC_AVIC @@ -63,7 +61,6 @@ config SOC_IMX27 bool select MACH_MX27 select CPU_ARM926T - select ARCH_MXC_AUDMUX_V1 select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 select MXC_AVIC @@ -72,7 +69,6 @@ config SOC_IMX31 bool select CPU_V6 select IMX_HAVE_PLATFORM_MXC_RNGA - select ARCH_MXC_AUDMUX_V2 select MXC_AVIC select SMP_ON_UP if SMP @@ -80,7 +76,6 @@ config SOC_IMX35 bool select CPU_V6 select ARCH_MXC_IOMUX_V3 - select ARCH_MXC_AUDMUX_V2 select HAVE_EPIT select MXC_AVIC select SMP_ON_UP if SMP @@ -89,7 +84,6 @@ config SOC_IMX5 select CPU_V7 select MXC_TZIC select ARCH_MXC_IOMUX_V3 - select ARCH_MXC_AUDMUX_V2 select ARCH_HAS_CPUFREQ select ARCH_MX5 bool diff --git a/trunk/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c b/trunk/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c index 5db3e1463af7..5f2f91d1798b 100644 --- a/trunk/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c +++ b/trunk/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c @@ -32,7 +32,6 @@ #include #include #include -#include #include "devices-imx27.h" @@ -306,25 +305,6 @@ void __init eukrea_mbimx27_baseboard_init(void) mxc_gpio_setup_multiple_pins(eukrea_mbimx27_pins, ARRAY_SIZE(eukrea_mbimx27_pins), "MBIMX27"); -#if defined(CONFIG_SND_SOC_EUKREA_TLV320) \ - || defined(CONFIG_SND_SOC_EUKREA_TLV320_MODULE) - /* SSI unit master I2S codec connected to SSI_PINS_4*/ - mxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR1_SSI0, - MXC_AUDMUX_V1_PCR_SYN | - MXC_AUDMUX_V1_PCR_TFSDIR | - MXC_AUDMUX_V1_PCR_TCLKDIR | - MXC_AUDMUX_V1_PCR_RFSDIR | - MXC_AUDMUX_V1_PCR_RCLKDIR | - MXC_AUDMUX_V1_PCR_TFCSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) | - MXC_AUDMUX_V1_PCR_RFCSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) | - MXC_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) - ); - mxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR3_SSI_PINS_4, - MXC_AUDMUX_V1_PCR_SYN | - MXC_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR1_SSI0) - ); -#endif - imx27_add_imx_uart1(&uart_pdata); imx27_add_imx_uart2(&uart_pdata); #if !defined(MACH_EUKREA_CPUIMX27_USEUART4) diff --git a/trunk/arch/arm/mach-imx/eukrea_mbimxsd-baseboard.c b/trunk/arch/arm/mach-imx/eukrea_mbimxsd-baseboard.c index d817fc80b986..aaa592fdb9ce 100644 --- a/trunk/arch/arm/mach-imx/eukrea_mbimxsd-baseboard.c +++ b/trunk/arch/arm/mach-imx/eukrea_mbimxsd-baseboard.c @@ -37,7 +37,6 @@ #include #include #include -#include #include "devices-imx51.h" diff --git a/trunk/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c b/trunk/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c index 66e8726253fa..2cf603e11c4f 100644 --- a/trunk/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c +++ b/trunk/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c @@ -31,7 +31,6 @@ #include #include #include -#include #include "devices-imx25.h" @@ -241,22 +240,6 @@ void __init eukrea_mbimxsd25_baseboard_init(void) ARRAY_SIZE(eukrea_mbimxsd_pads))) printk(KERN_ERR "error setting mbimxsd pads !\n"); -#if defined(CONFIG_SND_SOC_EUKREA_TLV320) - /* SSI unit master I2S codec connected to SSI_AUD5*/ - mxc_audmux_v2_configure_port(0, - MXC_AUDMUX_V2_PTCR_SYN | - MXC_AUDMUX_V2_PTCR_TFSDIR | - MXC_AUDMUX_V2_PTCR_TFSEL(4) | - MXC_AUDMUX_V2_PTCR_TCLKDIR | - MXC_AUDMUX_V2_PTCR_TCSEL(4), - MXC_AUDMUX_V2_PDCR_RXDSEL(4) - ); - mxc_audmux_v2_configure_port(4, - MXC_AUDMUX_V2_PTCR_SYN, - MXC_AUDMUX_V2_PDCR_RXDSEL(0) - ); -#endif - imx25_add_imx_uart1(&uart_pdata); imx25_add_imx_fb(&eukrea_mximxsd_fb_pdata); imx25_add_imx_ssi(0, &eukrea_mbimxsd_ssi_pdata); diff --git a/trunk/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c b/trunk/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c index 0f0af02b3182..fd8bf8a425a7 100644 --- a/trunk/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c +++ b/trunk/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c @@ -38,7 +38,6 @@ #include #include #include -#include #include "devices-imx35.h" @@ -252,22 +251,6 @@ void __init eukrea_mbimxsd35_baseboard_init(void) ARRAY_SIZE(eukrea_mbimxsd_pads))) printk(KERN_ERR "error setting mbimxsd pads !\n"); -#if defined(CONFIG_SND_SOC_EUKREA_TLV320) - /* SSI unit master I2S codec connected to SSI_AUD4 */ - mxc_audmux_v2_configure_port(0, - MXC_AUDMUX_V2_PTCR_SYN | - MXC_AUDMUX_V2_PTCR_TFSDIR | - MXC_AUDMUX_V2_PTCR_TFSEL(3) | - MXC_AUDMUX_V2_PTCR_TCLKDIR | - MXC_AUDMUX_V2_PTCR_TCSEL(3), - MXC_AUDMUX_V2_PDCR_RXDSEL(3) - ); - mxc_audmux_v2_configure_port(3, - MXC_AUDMUX_V2_PTCR_SYN, - MXC_AUDMUX_V2_PDCR_RXDSEL(0) - ); -#endif - imx35_add_imx_uart1(&uart_pdata); imx35_add_ipu_core(&mx3_ipu_data); imx35_add_mx3_sdc_fb(&mx3fb_pdata); diff --git a/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index 0a1643c3f17d..f7b074f496f0 100644 --- a/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c @@ -393,6 +393,7 @@ static void __init visstrim_m10_board_init(void) imx27_add_fec(NULL); imx_add_gpio_keys(&visstrim_gpio_keys_platform_data); platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); + imx_add_platform_device("mx27vis", 0, NULL, 0, NULL, 0); platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0, &iclink_tvp5150, sizeof(iclink_tvp5150)); gpio_led_register_device(0, &visstrim_m10_led_data); diff --git a/trunk/arch/arm/mach-imx/mach-pca100.c b/trunk/arch/arm/mach-imx/mach-pca100.c index d3b9c6b5edde..541152e450c4 100644 --- a/trunk/arch/arm/mach-imx/mach-pca100.c +++ b/trunk/arch/arm/mach-imx/mach-pca100.c @@ -36,7 +36,6 @@ #include #include #include -#include #include #include @@ -359,18 +358,6 @@ static void __init pca100_init(void) imx27_soc_init(); - /* SSI unit */ - mxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR1_SSI0, - MXC_AUDMUX_V1_PCR_SYN | /* 4wire mode */ - MXC_AUDMUX_V1_PCR_TFCSEL(3) | - MXC_AUDMUX_V1_PCR_TCLKDIR | /* clock is output */ - MXC_AUDMUX_V1_PCR_RXDSEL(3)); - mxc_audmux_v1_configure_port(3, - MXC_AUDMUX_V1_PCR_SYN | /* 4wire mode */ - MXC_AUDMUX_V1_PCR_TFCSEL(0) | - MXC_AUDMUX_V1_PCR_TFSDIR | - MXC_AUDMUX_V1_PCR_RXDSEL(0)); - ret = mxc_gpio_setup_multiple_pins(pca100_pins, ARRAY_SIZE(pca100_pins), "PCA100"); if (ret) diff --git a/trunk/arch/arm/mach-imx/mach-pcm043.c b/trunk/arch/arm/mach-imx/mach-pcm043.c index 06dc106519ae..237474fcca23 100644 --- a/trunk/arch/arm/mach-imx/mach-pcm043.c +++ b/trunk/arch/arm/mach-imx/mach-pcm043.c @@ -37,7 +37,6 @@ #include #include #include -#include #include "devices-imx35.h" @@ -362,18 +361,6 @@ static void __init pcm043_init(void) mxc_iomux_v3_setup_multiple_pads(pcm043_pads, ARRAY_SIZE(pcm043_pads)); - mxc_audmux_v2_configure_port(3, - MXC_AUDMUX_V2_PTCR_SYN | /* 4wire mode */ - MXC_AUDMUX_V2_PTCR_TFSEL(0) | - MXC_AUDMUX_V2_PTCR_TFSDIR, - MXC_AUDMUX_V2_PDCR_RXDSEL(0)); - - mxc_audmux_v2_configure_port(0, - MXC_AUDMUX_V2_PTCR_SYN | /* 4wire mode */ - MXC_AUDMUX_V2_PTCR_TCSEL(3) | - MXC_AUDMUX_V2_PTCR_TCLKDIR, /* clock is output */ - MXC_AUDMUX_V2_PDCR_RXDSEL(3)); - imx35_add_fec(NULL); platform_add_devices(devices, ARRAY_SIZE(devices)); imx35_add_imx2_wdt(NULL); diff --git a/trunk/arch/arm/mach-imx/mm-imx21.c b/trunk/arch/arm/mach-imx/mm-imx21.c index 3f05dfebacc9..14d540edfd1e 100644 --- a/trunk/arch/arm/mach-imx/mm-imx21.c +++ b/trunk/arch/arm/mach-imx/mm-imx21.c @@ -75,6 +75,10 @@ void __init mx21_init_irq(void) mxc_init_irq(MX21_IO_ADDRESS(MX21_AVIC_BASE_ADDR)); } +static const struct resource imx21_audmux_res[] __initconst = { + DEFINE_RES_MEM(MX21_AUDMUX_BASE_ADDR, SZ_4K), +}; + void __init imx21_soc_init(void) { mxc_register_gpio("imx21-gpio", 0, MX21_GPIO1_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); @@ -85,4 +89,6 @@ void __init imx21_soc_init(void) mxc_register_gpio("imx21-gpio", 5, MX21_GPIO6_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); imx_add_imx_dma(); + platform_device_register_simple("imx21-audmux", 0, imx21_audmux_res, + ARRAY_SIZE(imx21_audmux_res)); } diff --git a/trunk/arch/arm/mach-imx/mm-imx25.c b/trunk/arch/arm/mach-imx/mm-imx25.c index cc4d152bd9bd..153b457acdc0 100644 --- a/trunk/arch/arm/mach-imx/mm-imx25.c +++ b/trunk/arch/arm/mach-imx/mm-imx25.c @@ -83,6 +83,10 @@ static struct sdma_platform_data imx25_sdma_pdata __initdata = { .script_addrs = &imx25_sdma_script, }; +static const struct resource imx25_audmux_res[] __initconst = { + DEFINE_RES_MEM(MX25_AUDMUX_BASE_ADDR, SZ_16K), +}; + void __init imx25_soc_init(void) { /* i.mx25 has the i.mx31 type gpio */ @@ -93,4 +97,7 @@ void __init imx25_soc_init(void) /* i.mx25 has the i.mx35 type sdma */ imx_add_imx_sdma("imx35-sdma", MX25_SDMA_BASE_ADDR, MX25_INT_SDMA, &imx25_sdma_pdata); + /* i.mx25 has the i.mx31 type audmux */ + platform_device_register_simple("imx31-audmux", 0, imx25_audmux_res, + ARRAY_SIZE(imx25_audmux_res)); } diff --git a/trunk/arch/arm/mach-imx/mm-imx27.c b/trunk/arch/arm/mach-imx/mm-imx27.c index 96dd1f5ea7bd..8cb3f5e3e569 100644 --- a/trunk/arch/arm/mach-imx/mm-imx27.c +++ b/trunk/arch/arm/mach-imx/mm-imx27.c @@ -75,6 +75,10 @@ void __init mx27_init_irq(void) mxc_init_irq(MX27_IO_ADDRESS(MX27_AVIC_BASE_ADDR)); } +static const struct resource imx27_audmux_res[] __initconst = { + DEFINE_RES_MEM(MX27_AUDMUX_BASE_ADDR, SZ_4K), +}; + void __init imx27_soc_init(void) { /* i.mx27 has the i.mx21 type gpio */ @@ -86,4 +90,7 @@ void __init imx27_soc_init(void) mxc_register_gpio("imx21-gpio", 5, MX27_GPIO6_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); imx_add_imx_dma(); + /* imx27 has the imx21 type audmux */ + platform_device_register_simple("imx21-audmux", 0, imx27_audmux_res, + ARRAY_SIZE(imx27_audmux_res)); } diff --git a/trunk/arch/arm/mach-imx/mm-imx3.c b/trunk/arch/arm/mach-imx/mm-imx3.c index 8404ee72555a..9c9b7f9f43dc 100644 --- a/trunk/arch/arm/mach-imx/mm-imx3.c +++ b/trunk/arch/arm/mach-imx/mm-imx3.c @@ -156,6 +156,10 @@ static struct sdma_platform_data imx31_sdma_pdata __initdata = { .script_addrs = &imx31_to2_sdma_script, }; +static const struct resource imx31_audmux_res[] __initconst = { + DEFINE_RES_MEM(MX31_AUDMUX_BASE_ADDR, SZ_16K), +}; + void __init imx31_soc_init(void) { int to_version = mx31_revision() >> 4; @@ -173,6 +177,8 @@ void __init imx31_soc_init(void) } imx_add_imx_sdma("imx31-sdma", MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata); + platform_device_register_simple("imx31-audmux", 0, imx31_audmux_res, + ARRAY_SIZE(imx31_audmux_res)); } #endif /* ifdef CONFIG_SOC_IMX31 */ @@ -239,6 +245,10 @@ static struct sdma_platform_data imx35_sdma_pdata __initdata = { .script_addrs = &imx35_to2_sdma_script, }; +static const struct resource imx35_audmux_res[] __initconst = { + DEFINE_RES_MEM(MX35_AUDMUX_BASE_ADDR, SZ_16K), +}; + void __init imx35_soc_init(void) { int to_version = mx35_revision() >> 4; @@ -257,5 +267,8 @@ void __init imx35_soc_init(void) } imx_add_imx_sdma("imx35-sdma", MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata); + /* i.mx35 has the i.mx31 type audmux */ + platform_device_register_simple("imx31-audmux", 0, imx35_audmux_res, + ARRAY_SIZE(imx35_audmux_res)); } #endif /* ifdef CONFIG_SOC_IMX35 */ diff --git a/trunk/arch/arm/mach-imx/mm-imx5.c b/trunk/arch/arm/mach-imx/mm-imx5.c index 49549a72dc7d..dc7c4ed81531 100644 --- a/trunk/arch/arm/mach-imx/mm-imx5.c +++ b/trunk/arch/arm/mach-imx/mm-imx5.c @@ -164,6 +164,18 @@ static struct sdma_platform_data imx53_sdma_pdata __initdata = { .script_addrs = &imx53_sdma_script, }; +static const struct resource imx50_audmux_res[] __initconst = { + DEFINE_RES_MEM(MX50_AUDMUX_BASE_ADDR, SZ_16K), +}; + +static const struct resource imx51_audmux_res[] __initconst = { + DEFINE_RES_MEM(MX51_AUDMUX_BASE_ADDR, SZ_16K), +}; + +static const struct resource imx53_audmux_res[] __initconst = { + DEFINE_RES_MEM(MX53_AUDMUX_BASE_ADDR, SZ_16K), +}; + void __init imx50_soc_init(void) { /* i.mx50 has the i.mx31 type gpio */ @@ -173,6 +185,10 @@ void __init imx50_soc_init(void) mxc_register_gpio("imx31-gpio", 3, MX50_GPIO4_BASE_ADDR, SZ_16K, MX50_INT_GPIO4_LOW, MX50_INT_GPIO4_HIGH); mxc_register_gpio("imx31-gpio", 4, MX50_GPIO5_BASE_ADDR, SZ_16K, MX50_INT_GPIO5_LOW, MX50_INT_GPIO5_HIGH); mxc_register_gpio("imx31-gpio", 5, MX50_GPIO6_BASE_ADDR, SZ_16K, MX50_INT_GPIO6_LOW, MX50_INT_GPIO6_HIGH); + + /* i.mx50 has the i.mx31 type audmux */ + platform_device_register_simple("imx31-audmux", 0, imx50_audmux_res, + ARRAY_SIZE(imx50_audmux_res)); } void __init imx51_soc_init(void) @@ -185,6 +201,9 @@ void __init imx51_soc_init(void) /* i.mx51 has the i.mx35 type sdma */ imx_add_imx_sdma("imx35-sdma", MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata); + /* i.mx51 has the i.mx31 type audmux */ + platform_device_register_simple("imx31-audmux", 0, imx51_audmux_res, + ARRAY_SIZE(imx51_audmux_res)); } void __init imx53_soc_init(void) @@ -200,4 +219,7 @@ void __init imx53_soc_init(void) /* i.mx53 has the i.mx35 type sdma */ imx_add_imx_sdma("imx35-sdma", MX53_SDMA_BASE_ADDR, MX53_INT_SDMA, &imx53_sdma_pdata); + /* i.mx53 has the i.mx31 type audmux */ + platform_device_register_simple("imx31-audmux", 0, imx53_audmux_res, + ARRAY_SIZE(imx53_audmux_res)); } diff --git a/trunk/arch/arm/mach-kirkwood/openrd-setup.c b/trunk/arch/arm/mach-kirkwood/openrd-setup.c index 01f8c8992880..7e99c3f340fc 100644 --- a/trunk/arch/arm/mach-kirkwood/openrd-setup.c +++ b/trunk/arch/arm/mach-kirkwood/openrd-setup.c @@ -83,6 +83,11 @@ static struct i2c_board_info i2c_board_info[] __initdata = { }, }; +static struct platform_device openrd_client_audio_device = { + .name = "openrd-client-audio", + .id = -1, +}; + static int __initdata uart1; static int __init sd_uart_selection(char *str) @@ -172,6 +177,7 @@ static void __init openrd_init(void) kirkwood_i2c_init(); if (machine_is_openrd_client() || machine_is_openrd_ultimate()) { + platform_device_register(&openrd_client_audio_device); i2c_register_board_info(0, i2c_board_info, ARRAY_SIZE(i2c_board_info)); kirkwood_audio_init(); diff --git a/trunk/arch/arm/mach-kirkwood/t5325-setup.c b/trunk/arch/arm/mach-kirkwood/t5325-setup.c index 966b2b3bb813..f9d2a11b7f96 100644 --- a/trunk/arch/arm/mach-kirkwood/t5325-setup.c +++ b/trunk/arch/arm/mach-kirkwood/t5325-setup.c @@ -106,6 +106,11 @@ static struct platform_device hp_t5325_button_device = { } }; +static struct platform_device hp_t5325_audio_device = { + .name = "t5325-audio", + .id = -1, +}; + static unsigned int hp_t5325_mpp_config[] __initdata = { MPP0_NF_IO2, MPP1_SPI_MOSI, @@ -179,6 +184,7 @@ static void __init hp_t5325_init(void) kirkwood_sata_init(&hp_t5325_sata_data); kirkwood_ehci_init(); platform_device_register(&hp_t5325_button_device); + platform_device_register(&hp_t5325_audio_device); i2c_register_board_info(0, i2c_board_info, ARRAY_SIZE(i2c_board_info)); kirkwood_audio_init(); diff --git a/trunk/arch/arm/mach-omap2/board-4430sdp.c b/trunk/arch/arm/mach-omap2/board-4430sdp.c index 766f7e47771c..7116ce2321c0 100644 --- a/trunk/arch/arm/mach-omap2/board-4430sdp.c +++ b/trunk/arch/arm/mach-omap2/board-4430sdp.c @@ -41,6 +41,7 @@ #include