From f061a04dd39ef3942ec98f301707a77baa83e9f9 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 11 Oct 2014 14:32:03 -0500 Subject: rework audio driver loading on rpi seems that i2s driver does not behave correctly when builtin. Add back driver modules for audio boards on rpi. --- mk/modules.mk | 44 +++++++++++++++++++++++++++++++++ package/pulseaudio/Makefile | 2 +- target/arm/kernel/raspberry-pi | 4 +-- target/linux/config/Config.in.audio | 42 ++++++++++++++++++------------- target/linux/config/Config.in.dma | 5 +++- target/linux/config/Config.in.gpio | 11 +++++++++ target/linux/config/Config.in.i2c | 2 +- target/linux/config/Config.in.misc | 1 + target/linux/config/Config.in.regmap | 25 +++++++++++++++++++ target/linux/config/Config.in.regulator | 25 ------------------- target/linux/config/Config.in.spi | 2 +- 11 files changed, 115 insertions(+), 48 deletions(-) create mode 100644 target/linux/config/Config.in.regmap diff --git a/mk/modules.mk b/mk/modules.mk index d07da61c9..77a6a30f3 100644 --- a/mk/modules.mk +++ b/mk/modules.mk @@ -1747,3 +1747,47 @@ $(eval $(call KMOD_template,DRM_DW_HDMI_CEC,drm-dw-hdmi-cec,\ $(MODULES_DIR)/kernel/drivers/cec/cec-dev \ $(MODULES_DIR)/kernel/drivers/staging/imx-drm/dw-hdmi-cec \ ,75)) + +# +# Sound +# +$(eval $(call KMOD_template,SND_SOC_WM8804,snd-soc-wm8804,\ + $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-wm8804 \ +,55)) + +$(eval $(call KMOD_template,SND_SOC_PCM5102A,snd-soc-pcm5102a,\ + $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-pcm5102a \ +,55)) + +$(eval $(call KMOD_template,SND_SOC_PCM512x,snd-soc-pcm512x,\ + $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-pcm512x \ +,55)) + +$(eval $(call KMOD_template,SND_SOC_PCM512x_I2C,snd-soc-pcm512x-i2c,\ + $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-pcm512x-i2c \ +,56)) + +$(eval $(call KMOD_template,SND_SOC_PCM512x_SPI,snd-soc-pcm512x-spi,\ + $(MODULES_DIR)/kernel/sound/soc/codecs/snd-soc-pcm512x-spi \ +,56)) + +$(eval $(call KMOD_template,SND_BCM2708_SOC_I2S,snd-bcm2708-soc-i2s,\ + $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-bcm2708-i2s \ +,60, kmod-snd-soc)) + +$(eval $(call KMOD_template,SND_BCM2708_SOC_HIFIBERRY_DAC,snd-bcm2708-soc-hifiberry-dac,\ + $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-hifiberry-dac \ +,65, kmod-snd-bcm2708-soc-i2s)) + +$(eval $(call KMOD_template,SND_BCM2708_SOC_HIFIBERRY_DIGI,snd-bcm2708-soc-hifiberry-digi,\ + $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-hifiberry-digi \ +,65, kmod-snd-bcm2708-soc-i2s)) + +$(eval $(call KMOD_template,SND_BCM2708_SOC_RPI_DAC,snd-bcm2708-soc-rpi-dac,\ + $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-rpi-dac \ +,65, kmod-snd-bcm2708-soc-i2s)) + +$(eval $(call KMOD_template,SND_BCM2708_SOC_IQAUDIO_DAC,snd-bcm2708-soc-iqaudio-dac,\ + $(MODULES_DIR)/kernel/sound/soc/bcm/snd-soc-iqaudio-dac \ +,65, kmod-snd-bcm2708-soc-i2s)) + diff --git a/package/pulseaudio/Makefile b/package/pulseaudio/Makefile index 785f473fa..acb4bb89f 100644 --- a/package/pulseaudio/Makefile +++ b/package/pulseaudio/Makefile @@ -18,7 +18,7 @@ PKG_URL:= http://www.freedesktop.org/wiki/Software/PulseAudio/ PKG_SITES:= http://freedesktop.org/software/pulseaudio/releases/ PKG_OPTS:= dev -PKG_LIBC_DEPENDS:= uclibc glibc +PKG_LIBC_DEPENDS:= uclibc-ng uclibc glibc include $(ADK_TOPDIR)/mk/package.mk diff --git a/target/arm/kernel/raspberry-pi b/target/arm/kernel/raspberry-pi index 146fd3655..a748b42e8 100644 --- a/target/arm/kernel/raspberry-pi +++ b/target/arm/kernel/raspberry-pi @@ -3,12 +3,12 @@ CONFIG_FIQ=y CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_KUSER_HELPERS=y CONFIG_ARCH_MULTI_V6=y +CONFIG_VFP=y CONFIG_ARCH_BCM2708=y +CONFIG_ARCH_BCM2835=y CONFIG_MACH_BCM2708=y -CONFIG_BCM2708_GPIO=y CONFIG_BCM2708_VCMEM=y CONFIG_BCM2708_DMAER=y -CONFIG_VFP=y CONFIG_BCM2708_VCHIQ=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y diff --git a/target/linux/config/Config.in.audio b/target/linux/config/Config.in.audio index 594274c40..7ff42afe9 100644 --- a/target/linux/config/Config.in.audio +++ b/target/linux/config/Config.in.audio @@ -74,15 +74,25 @@ config ADK_KERNEL_SND_SOC_I2C_AND_SPI boolean config ADK_KERNEL_SND_SOC_WM8804 - boolean + tristate select ADK_KERNEL_SND_SOC_I2C_AND_SPI config ADK_KERNEL_SND_SOC_PCM5102A - boolean + tristate + select ADK_KERNEL_SND_SOC_I2C_AND_SPI + +config ADK_KERNEL_SND_SOC_PCM512x + tristate select ADK_KERNEL_SND_SOC_I2C_AND_SPI config ADK_KERNEL_SND_SOC_PCM512x_I2C - boolean + tristate + select ADK_KERNEL_SND_SOC_PCM512x + select ADK_KERNEL_SND_SOC_I2C_AND_SPI + +config ADK_KERNEL_SND_SOC_PCM512x_SPI + tristate + select ADK_KERNEL_SND_SOC_PCM512x select ADK_KERNEL_SND_SOC_I2C_AND_SPI config ADK_KERNEL_SND_PCM_DMAENGINE @@ -161,11 +171,13 @@ config ADK_KERNEL_SND_BCM2835 default y if ADK_TARGET_SYSTEM_RASPBERRY_PI default n -config ADK_KERNEL_SND_BCM2835_SOC_I2S - boolean +config ADK_KERNEL_SND_BCM2708_SOC_I2S + tristate select ADK_KERNEL_SND select ADK_KERNEL_SND_ARM select ADK_KERNEL_SND_SOC + select ADK_KERNEL_SND_BCM2835 + select ADK_KERNEL_DMA_BCM2835 select ADK_KERNEL_SND_DMAENGINE_PCM select ADK_KERNEL_SND_SOC_GENERIC_DMAENGINE_PCM select ADK_KERNEL_REGMAP_MMIO @@ -174,35 +186,31 @@ config ADK_KERNEL_SND_BCM2835_SOC_I2S config ADK_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DAC prompt "Raspberry PI hifiberry DAC" - boolean - select ADK_KERNEL_DMA_BCM2708 - select ADK_KERNEL_SND_BCM2835_SOC_I2S + tristate + select ADK_KERNEL_SND_BCM2708_SOC_I2S select ADK_KERNEL_SND_SOC_PCM5102A depends on ADK_TARGET_SYSTEM_RASPBERRY_PI default n config ADK_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DIGI prompt "Raspberry PI hifiberry DIGI" - boolean - select ADK_KERNEL_DMA_BCM2708 - select ADK_KERNEL_SND_BCM2835_SOC_I2S + tristate + select ADK_KERNEL_SND_BCM2708_SOC_I2S select ADK_KERNEL_SND_SOC_WM8804 depends on ADK_TARGET_SYSTEM_RASPBERRY_PI default n config ADK_KERNEL_SND_BCM2708_SOC_RPI_DAC prompt "Raspberry PI RPI-DAC" - boolean - select ADK_KERNEL_DMA_BCM2708 - select ADK_KERNEL_SND_BCM2835_SOC_I2S + tristate + select ADK_KERNEL_SND_BCM2708_SOC_I2S depends on ADK_TARGET_SYSTEM_RASPBERRY_PI default n config ADK_KERNEL_SND_BCM2708_SOC_IQAUDIO_DAC prompt "Raspberry PI IQAudio-DAC" - boolean - select ADK_KERNEL_DMA_BCM2708 - select ADK_KERNEL_SND_BCM2835_SOC_I2S + tristate + select ADK_KERNEL_SND_BCM2708_SOC_I2S select ADK_KERNEL_SND_SOC_PCM512x_I2C depends on ADK_TARGET_SYSTEM_RASPBERRY_PI default n diff --git a/target/linux/config/Config.in.dma b/target/linux/config/Config.in.dma index 9ea4a2e12..6a8f8f1a4 100644 --- a/target/linux/config/Config.in.dma +++ b/target/linux/config/Config.in.dma @@ -1,9 +1,12 @@ config ADK_KERNEL_DMADEVICES boolean -config ADK_KERNEL_DMA_BCM2708 +config ADK_KERNEL_DMA_BCM2835 boolean select ADK_KERNEL_DMADEVICES + depends on ADK_TARGET_SYSTEM_RASPBERRY_PI + default y if ADK_TARGET_SYSTEM_RASPBERRY_PI + default n config ADK_KERNEL_IMX_SDMA boolean diff --git a/target/linux/config/Config.in.gpio b/target/linux/config/Config.in.gpio index 678b04674..64b4c46ab 100644 --- a/target/linux/config/Config.in.gpio +++ b/target/linux/config/Config.in.gpio @@ -13,6 +13,16 @@ config ADK_KERNEL_GPIO_SYSFS config ADK_KERNEL_GPIO_GENERIC boolean +config ADK_KERNEL_BCM2708_GPIO + boolean + select ADK_KERNEL_GPIOLIB + select ADK_KERNEL_GPIO_SYSFS + select ADK_KERNEL_GPIO_GENERIC + select ADK_KERNEL_RESET_CONTROLLER + depends on ADK_TARGET_SYSTEM_RASPBERRY_PI + default y if ADK_TARGET_SYSTEM_RASPBERRY_PI + default n + config ADK_KERNEL_GPIO_MXC boolean select ADK_KERNEL_GPIOLIB @@ -20,5 +30,6 @@ config ADK_KERNEL_GPIO_MXC select ADK_KERNEL_GPIO_GENERIC select ADK_KERNEL_RESET_CONTROLLER select ADK_KERNEL_RESET_GPIO + depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 default n diff --git a/target/linux/config/Config.in.i2c b/target/linux/config/Config.in.i2c index feb06eaea..83ef3a1fa 100644 --- a/target/linux/config/Config.in.i2c +++ b/target/linux/config/Config.in.i2c @@ -7,7 +7,7 @@ config ADK_KERNEL_I2C config ADK_KERNEL_I2C_CHARDEV tristate -config ADK_KERNEL_I2C_BCM2708 +config ADK_KERNEL_I2C_BCM2835 prompt "I2C driver for Raspberry PI" tristate select ADK_KERNEL_I2C diff --git a/target/linux/config/Config.in.misc b/target/linux/config/Config.in.misc index 6823ee612..931bda8a8 100644 --- a/target/linux/config/Config.in.misc +++ b/target/linux/config/Config.in.misc @@ -31,6 +31,7 @@ source "target/linux/config/Config.in.leds" source "target/linux/config/Config.in.watchdog" source "target/linux/config/Config.in.i2c" source "target/linux/config/Config.in.spi" +source "target/linux/config/Config.in.regmap" source "target/linux/config/Config.in.regulator" source "target/linux/config/Config.in.gpio" source "target/linux/config/Config.in.dma" diff --git a/target/linux/config/Config.in.regmap b/target/linux/config/Config.in.regmap new file mode 100644 index 000000000..44a8bcca0 --- /dev/null +++ b/target/linux/config/Config.in.regmap @@ -0,0 +1,25 @@ +config ADK_KERNEL_REGMAP + boolean + select ADK_KERNEL_LZO_COMPRESS + select ADK_KERNEL_LZO_DECOMPRESS + default n + +config ADK_KERNEL_REGMAP_I2C + boolean + select ADK_KERNEL_REGMAP + default n + +config ADK_KERNEL_REGMAP_SPI + boolean + select ADK_KERNEL_REGMAP + default n + +config ADK_KERNEL_REGMAP_MMIO + boolean + select ADK_KERNEL_REGMAP + default n + +config ADK_KERNEL_REGMAP_IRQ + boolean + select ADK_KERNEL_REGMAP + default n diff --git a/target/linux/config/Config.in.regulator b/target/linux/config/Config.in.regulator index 6e8f8dfd1..a6a6c90a7 100644 --- a/target/linux/config/Config.in.regulator +++ b/target/linux/config/Config.in.regulator @@ -37,28 +37,3 @@ config ADK_KERNEL_REGULATOR_PFUZE100 select ADK_KERNEL_REGULATOR default n -config ADK_KERNEL_REGMAP - boolean - select ADK_KERNEL_LZO_COMPRESS - select ADK_KERNEL_LZO_DECOMPRESS - default n - -config ADK_KERNEL_REGMAP_I2C - boolean - select ADK_KERNEL_REGMAP - default n - -config ADK_KERNEL_REGMAP_SPI - boolean - select ADK_KERNEL_REGMAP - default n - -config ADK_KERNEL_REGMAP_MMIO - boolean - select ADK_KERNEL_REGMAP - default n - -config ADK_KERNEL_REGMAP_IRQ - boolean - select ADK_KERNEL_REGMAP - default n diff --git a/target/linux/config/Config.in.spi b/target/linux/config/Config.in.spi index d58215eab..ff5286804 100644 --- a/target/linux/config/Config.in.spi +++ b/target/linux/config/Config.in.spi @@ -26,7 +26,7 @@ config ADK_KERNEL_SPI_PXA2XX tristate select ADK_KERNEL_SPI -config ADK_KERNEL_SPI_BCM2708 +config ADK_KERNEL_SPI_BCM2835 prompt "SPI driver for Raspberry PI" tristate select ADK_KERNEL_SPI -- cgit v1.2.3