aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/modules
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2019-07-09 20:32:28 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2019-07-14 12:44:14 +0200
commit42954857190b9df16d9d873ecc7f6cc38e013e44 (patch)
tree98c588f629ff534d458eb0884782ea99672d7634 /target/linux/brcm2708/modules
parentf1875e902d0afb7d9b9e5285b4fd8da7f6c5e30a (diff)
downloadupstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.gz
upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.bz2
upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.zip
brcm2708: add linux 4.19 support
Boot tested on Raspberry Pi B+ (BCM2708) and Raspberry Pi 2 (BCM2709) Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/modules')
-rw-r--r--target/linux/brcm2708/modules/hwmon.mk36
-rw-r--r--target/linux/brcm2708/modules/i2c.mk21
-rw-r--r--target/linux/brcm2708/modules/other.mk75
-rw-r--r--target/linux/brcm2708/modules/sound.mk805
-rw-r--r--target/linux/brcm2708/modules/spi.mk43
-rw-r--r--target/linux/brcm2708/modules/video.mk85
6 files changed, 1065 insertions, 0 deletions
diff --git a/target/linux/brcm2708/modules/hwmon.mk b/target/linux/brcm2708/modules/hwmon.mk
new file mode 100644
index 0000000000..9b790010b3
--- /dev/null
+++ b/target/linux/brcm2708/modules/hwmon.mk
@@ -0,0 +1,36 @@
+#
+# Copyright (C) 2019 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define KernelPackage/hwmon-raspberrypi
+ TITLE:=Raspberry Pi voltage monitor
+ KCONFIG:=CONFIG_SENSORS_RASPBERRYPI_HWMON
+ FILES:=$(LINUX_DIR)/drivers/hwmon/raspberrypi-hwmon.ko
+ AUTOLOAD:=$(call AutoLoad,60,raspberrypi-hwmon)
+ $(call AddDepends/hwmon,@TARGET_brcm2708)
+endef
+
+define KernelPackage/hwmon-raspberrypi/description
+ Kernel module for voltage sensor on the Raspberry Pi
+endef
+
+$(eval $(call KernelPackage,hwmon-raspberrypi))
+
+
+define KernelPackage/hwmon-rpi-poe-fan
+ SUBMENU:=$(HWMON_MENU)
+ TITLE:=Raspberry Pi PoE HAT fan
+ DEPENDS:=@TARGET_brcm2708 +kmod-hwmon-core
+ KCONFIG:=CONFIG_SENSORS_RPI_POE_FAN
+ FILES:=$(LINUX_DIR)/drivers/hwmon/rpi-poe-fan.ko
+ AUTOLOAD:=$(call AutoProbe,rpi-poe-fan)
+endef
+
+define KernelPackage/hwmon-rpi-poe-fan/description
+ Raspberry Pi PoE HAT fan driver
+endef
+
+$(eval $(call KernelPackage,hwmon-rpi-poe-fan))
diff --git a/target/linux/brcm2708/modules/i2c.mk b/target/linux/brcm2708/modules/i2c.mk
new file mode 100644
index 0000000000..ebba032f94
--- /dev/null
+++ b/target/linux/brcm2708/modules/i2c.mk
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 2019 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+I2C_BCM2835_MODULES:=\
+ CONFIG_I2C_BCM2835:drivers/i2c/busses/i2c-bcm2835
+
+define KernelPackage/i2c-bcm2835
+ $(call i2c_defaults,$(I2C_BCM2835_MODULES),59)
+ TITLE:=Broadcom BCM2835 I2C master controller driver
+ DEPENDS:=@TARGET_brcm2708 +kmod-i2c-core
+endef
+
+define KernelPackage/i2c-bcm2835/description
+ This package contains the Broadcom 2835 I2C master controller driver
+endef
+
+$(eval $(call KernelPackage,i2c-bcm2835))
diff --git a/target/linux/brcm2708/modules/other.mk b/target/linux/brcm2708/modules/other.mk
new file mode 100644
index 0000000000..ce3b2b6fb0
--- /dev/null
+++ b/target/linux/brcm2708/modules/other.mk
@@ -0,0 +1,75 @@
+#
+# Copyright (C) 2019 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define KernelPackage/pwm-bcm2835
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=BCM2835 PWM driver
+ KCONFIG:= \
+ CONFIG_PWM=y \
+ CONFIG_PWM_BCM2835
+ FILES:=$(LINUX_DIR)/drivers/pwm/pwm-bcm2835.ko
+ AUTOLOAD:=$(call AutoLoad,60,pwm-bcm2835)
+ DEPENDS:=@TARGET_brcm2708
+endef
+
+define KernelPackage/pwm-bcm2835/description
+ This package contains the PWM framework driver for BCM2835 controller (Raspberry Pi)
+endef
+
+$(eval $(call KernelPackage,pwm-bcm2835))
+
+
+define KernelPackage/random-bcm2835
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=BCM2835 HW Random Number Generator
+ KCONFIG:= \
+ CONFIG_HW_RANDOM_BCM2835
+ FILES:=$(LINUX_DIR)/drivers/char/hw_random/bcm2835-rng.ko
+ AUTOLOAD:=$(call AutoLoad,11,bcm2835-rng)
+ DEPENDS:=@TARGET_brcm2708 +kmod-random-core
+endef
+
+define KernelPackage/random-bcm2835/description
+ This package contains the Broadcom 2835 HW random number generator driver
+endef
+
+$(eval $(call KernelPackage,random-bcm2835))
+
+
+define KernelPackage/smi-bcm2835
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=BCM2835 SMI driver
+ KCONFIG:=CONFIG_BCM2835_SMI
+ FILES:=$(LINUX_DIR)/drivers/misc/bcm2835_smi.ko
+ AUTOLOAD:=$(call AutoLoad,20,bcm2835_smi)
+ DEPENDS:=@TARGET_brcm2708
+endef
+
+define KernelPackage/smi-bcm2835/description
+ This package contains the Character device driver for Broadcom Secondary
+ Memory Interface
+endef
+
+$(eval $(call KernelPackage,smi-bcm2835))
+
+
+define KernelPackage/smi-bcm2835-dev
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=BCM2835 SMI device driver
+ KCONFIG:=CONFIG_BCM2835_SMI_DEV
+ FILES:=$(LINUX_DIR)/drivers/char/broadcom/bcm2835_smi_dev.ko
+ AUTOLOAD:=$(call AutoLoad,21,bcm2835_smi_dev)
+ DEPENDS:=@TARGET_brcm2708 +kmod-smi-bcm2835
+endef
+
+define KernelPackage/smi-bcm2835-dev/description
+ This driver provides a character device interface (ioctl + read/write) to
+ Broadcom's Secondary Memory interface. The low-level functionality is provided
+ by the SMI driver itself.
+endef
+
+$(eval $(call KernelPackage,smi-bcm2835-dev))
diff --git a/target/linux/brcm2708/modules/sound.mk b/target/linux/brcm2708/modules/sound.mk
new file mode 100644
index 0000000000..9f0a723948
--- /dev/null
+++ b/target/linux/brcm2708/modules/sound.mk
@@ -0,0 +1,805 @@
+#
+# Copyright (C) 2019 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define KernelPackage/sound-arm-bcm2835
+ TITLE:=BCM2835 ALSA driver
+ KCONFIG:= \
+ CONFIG_SND_ARM=y \
+ CONFIG_SND_BCM2835 \
+ CONFIG_SND_ARMAACI=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-audio/snd-bcm2835.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-bcm2835)
+ DEPENDS:=@TARGET_brcm2708
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-arm-bcm2835/description
+ This package contains the BCM2835 ALSA pcm card driver
+endef
+
+$(eval $(call KernelPackage,sound-arm-bcm2835))
+
+
+define KernelPackage/sound-soc-bcm2835-i2s
+ TITLE:=SoC Audio support for the Broadcom 2835 I2S module
+ KCONFIG:= \
+ CONFIG_SND_BCM2835_SOC_I2S \
+ CONFIG_SND_SOC_AD193X_SPI=n \
+ CONFIG_SND_SOC_AD193X_I2C=n \
+ CONFIG_SND_SOC_DMAENGINE_PCM=y \
+ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-bcm2835-i2s.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-bcm2835-i2s)
+ DEPENDS:=@TARGET_brcm2708 +kmod-sound-soc-core
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-bcm2835-i2s/description
+ This package contains support for codecs attached to the Broadcom 2835 I2S interface
+endef
+
+$(eval $(call KernelPackage,sound-soc-bcm2835-i2s))
+
+
+define KernelPackage/sound-soc-rpi-simple-soundcard
+ TITLE:=Support for Raspberry Pi simple soundcards
+ KCONFIG:= \
+ CONFIG_SND_RPI_SIMPLE_SOUNDCARD
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-rpi-simple-soundcard.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-rpi-simple-soundcard)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-rpi-simple-soundcard/description
+ This package contains support for Raspbery Pi simple soundcards
+endef
+
+$(eval $(call KernelPackage,sound-soc-rpi-simple-soundcard))
+
+
+define KernelPackage/sound-soc-rpi-wm8804-soundcard
+ TITLE:=Support for Raspberry Pi generic WM8804 soundcards
+ KCONFIG:= \
+ CONFIG_SND_RPI_WM8804_SOUNDCARD
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-rpi-wm8804-soundcard.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-rpi-wm8804-soundcard)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-rpi-wm8804-soundcard/description
+ This package contains support for Raspbery Pi simple soundcards
+endef
+
+$(eval $(call KernelPackage,sound-soc-rpi-wm8804-soundcard))
+
+
+define KernelPackage/sound-soc-adau1977-adc
+ TITLE:=Support for ADAU1977 ADC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_ADAU1977_ADC \
+ CONFIG_SND_SOC_ADAU1977 \
+ CONFIG_SND_SOC_ADAU1977_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-adau1977.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-adau1977-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-adau1977 snd-soc-adau1977-i2c)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-simple-soundcard \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-adau1977-adc/description
+ This package contains support for ADAU1977 ADC
+endef
+
+$(eval $(call KernelPackage,sound-soc-adau1977-adc))
+
+
+define KernelPackage/sound-soc-allo-boss-dac
+ TITLE:=Support for Allo Boss DAC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC \
+ CONFIG_SND_SOC_PCM512x \
+ CONFIG_SND_SOC_PCM512x_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-boss-dac.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
+ snd-soc-allo-boss-dac)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-allo-boss-dac/description
+ This package contains support for Allo Boss DAC
+endef
+
+$(eval $(call KernelPackage,sound-soc-allo-boss-dac))
+
+
+define KernelPackage/sound-soc-allo-digione
+ TITLE:=Support for Allo Piano DigiOne
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE \
+ CONFIG_SND_SOC_WM8804 \
+ CONFIG_SND_SOC_WM8804_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8804-i2c snd-soc-wm8804 \
+ snd-soc-allo-digione)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-wm8804-soundcard \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-allo-digione/description
+ This package contains support for Allo DigiOne
+endef
+
+$(eval $(call KernelPackage,sound-soc-allo-digione))
+
+
+define KernelPackage/sound-soc-allo-piano-dac
+ TITLE:=Support for Allo Piano DAC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC \
+ CONFIG_SND_SOC_PCM512x \
+ CONFIG_SND_SOC_PCM512x_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-piano-dac.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
+ snd-soc-allo-piano-dac)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-allo-piano-dac/description
+ This package contains support for Allo Piano DAC
+endef
+
+$(eval $(call KernelPackage,sound-soc-allo-piano-dac))
+
+
+define KernelPackage/sound-soc-allo-piano-dac-plus
+ TITLE:=Support for Allo Piano DAC Plus
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS \
+ CONFIG_SND_SOC_PCM512x \
+ CONFIG_SND_SOC_PCM512x_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-piano-dac-plus.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
+ snd-soc-allo-piano-dac-plus)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-allo-piano-dac-plus/description
+ This package contains support for Allo Piano DAC Plus
+endef
+
+$(eval $(call KernelPackage,sound-soc-allo-piano-dac-plus))
+
+
+define KernelPackage/sound-soc-audiosense-pi
+ TITLE:=Support for AudioSense Add-On Soundcard
+ KCONFIG:= \
+ CONFIG_SND_AUDIOSENSE_PI \
+ CONFIG_SND_SOC_TLV320AIC32X4 \
+ CONFIG_SND_SOC_TLV320AIC32X4_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-audiosense-pi.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-tlv320aic32x4.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-tlv320aic32x4-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-tlv320aic32x4-i2c snd-soc-tlv320aic32x4 \
+ snd-soc-audiosense-pi)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-audiosense-pi/description
+ This package contains support for AudioSense Add-On Soundcard
+endef
+
+$(eval $(call KernelPackage,sound-soc-audiosense-pi))
+
+
+define KernelPackage/sound-soc-allo-katana-codec
+ TITLE:=Support for Allo Katana DAC
+ KCONFIG:= \
+ CONFIG_SND_AUDIO_GRAPH_CARD \
+ CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC \
+ CONFIG_SND_SOC_PCM512x \
+ CONFIG_SND_SOC_PCM512x_I2C \
+ CONFIG_SND_SIMPLE_CARD_UTILS
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-katana-codec.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
+ snd-soc-allo-katana-codec)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-allo-katana-codec/description
+ This package contains support for Allo Katana DAC
+endef
+
+$(eval $(call KernelPackage,sound-soc-allo-katana-codec))
+
+
+define KernelPackage/sound-soc-audioinjector-octo-soundcard
+ TITLE:=Support for AudioInjector Octo soundcard
+ KCONFIG:= \
+ CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD \
+ CONFIG_SND_SOC_CS42XX8 \
+ CONFIG_SND_SOC_CS42XX8_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-audioinjector-octo-soundcard.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-cs42xx8.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-cs42xx8-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc- \
+ snd-soc-audioinjector-octo-soundcard)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-audioinjector-octo-soundcard/description
+ This package contains support for AudioInjector Octo soundcard
+endef
+
+$(eval $(call KernelPackage,sound-soc-audioinjector-octo-soundcard))
+
+
+define KernelPackage/sound-soc-audioinjector-pi-soundcard
+ TITLE:=Support for AudioInjector Pi soundcard
+ KCONFIG:= \
+ CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD \
+ CONFIG_SND_SOC_WM8731
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-audioinjector-pi-soundcard.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8731.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8731 \
+ snd-soc-audioinjector-pi-soundcard)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c \
+ +kmod-regmap-spi
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-audioinjector-pi-soundcard/description
+ This package contains support for AudioInjector Pi soundcard
+endef
+
+$(eval $(call KernelPackage,sound-soc-audioinjector-pi-soundcard))
+
+
+define KernelPackage/sound-soc-digidac1-soundcard
+ TITLE:=Support for RRA DigiDAC1
+ KCONFIG:= \
+ CONFIG_SND_DIGIDAC1_SOUNDCARD \
+ CONFIG_SND_SOC_WM8741 \
+ CONFIG_SND_SOC_WM8804 \
+ CONFIG_SND_SOC_WM8804_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-digidac1-soundcard.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8741.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8741 \
+ snd-soc-wm8804 snd-soc-wm8804-i2c \
+ snd-soc-digidac1-soundcard)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c \
+ +kmod-regmap-spi
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-digidac1-soundcard/description
+ This package contains support for RRA DigiDAC1
+endef
+
+$(eval $(call KernelPackage,sound-soc-digidac1-soundcard))
+
+
+define KernelPackage/sound-soc-dionaudio-loco
+ TITLE:=Support for Dion Audio LOCO DAC-AMP
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO \
+ CONFIG_SND_SOC_PCM5102A
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-dionaudio-loco.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm5102a \
+ snd-soc-dionaudio-loco)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-dionaudio-loco/description
+ This package contains support for Dion Audio LOCO DAC-AMP
+endef
+
+$(eval $(call KernelPackage,sound-soc-dionaudio-loco))
+
+
+define KernelPackage/sound-soc-dionaudio-loco-v2
+ TITLE:=Support for Dion Audio LOCO-V2 DAC-AMP
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO_V2 \
+ CONFIG_SND_SOC_PCM512x \
+ CONFIG_SND_SOC_PCM512x_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-dionaudio-loco.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x snd-soc-pcm512x-i2c \
+ snd-soc-dionaudio-loco)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-dionaudio-loco-v2/description
+ This package contains support for Dion Audio LOCO-V2 DAC-AMP
+endef
+
+$(eval $(call KernelPackage,sound-soc-dionaudio-loco-v2))
+
+
+define KernelPackage/sound-soc-fe-pi
+ TITLE:=Support for Fe-Pi Audio Sound Card
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_FE_PI_AUDIO \
+ CONFIG_SND_SOC_SGTL5000
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-fe-pi-audio.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-sgtl5000 \
+ snd-soc-fe-pi-audio)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-fe-pi/description
+ This package contains support for Fe-Pi Audio Sound Card
+endef
+
+$(eval $(call KernelPackage,sound-soc-fe-pi))
+
+
+define KernelPackage/sound-soc-googlevoicehat
+ TITLE:=Support for Google VoiceHAT Sound Card
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD \
+ CONFIG_SND_SOC_VOICEHAT
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-googlevoicehat-codec.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-googlevoicehat-codec)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-simple-soundcard
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-googlevoicehat/description
+ This package contains support for Google VoiceHAT Sound Card
+endef
+
+$(eval $(call KernelPackage,sound-soc-googlevoicehat))
+
+
+define KernelPackage/sound-soc-hifiberry-dac
+ TITLE:=Support for HifiBerry DAC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC \
+ CONFIG_SND_SOC_PCM5102A
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm5102a)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-simple-soundcard \
+ +kmod-i2c-bcm2835
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-hifiberry-dac/description
+ This package contains support for HifiBerry DAC
+endef
+
+$(eval $(call KernelPackage,sound-soc-hifiberry-dac))
+
+
+define KernelPackage/sound-soc-hifiberry-dacplus
+ TITLE:=Support for HifiBerry DAC+ / DAC+ Pro
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS \
+ CONFIG_SND_SOC_PCM512x
+ FILES:= \
+ $(LINUX_DIR)/drivers/clk/clk-hifiberry-dacpro.ko \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplus.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko
+ AUTOLOAD:=$(call AutoLoad,68,clk-hifiberry-dacpro snd-soc-pcm512x \
+ snd-soc-hifiberry-dacplus)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-hifiberry-dacplus/description
+ This package contains support for HifiBerry DAC+ / DAC+ Pro
+endef
+
+$(eval $(call KernelPackage,sound-soc-hifiberry-dacplus))
+
+
+define KernelPackage/sound-soc-hifiberry-dacplusadc
+ TITLE:=Support for HifiBerry DAC+ADC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC \
+ CONFIG_SND_SOC_PCM512x \
+ CONFIG_SND_SOC_DMIC
+ FILES:= \
+ $(LINUX_DIR)/drivers/clk/clk-hifiberry-dacpro.ko \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplusadc.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-dmic.ko
+ AUTOLOAD:=$(call AutoLoad,68,clk-hifiberry-dacpro snd-soc-pcm512x \
+ snd-soc-dmic snd-soc-hifiberry-dacplusadc)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-hifiberry-dacplusadc/description
+ This package contains support for HifiBerry DAC+ADC
+endef
+
+$(eval $(call KernelPackage,sound-soc-hifiberry-dacplusadc))
+
+
+define KernelPackage/sound-soc-hifiberry-digi
+ TITLE:=Support for HifiBerry Digi / Digi+ / Digi+ Pro
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI \
+ CONFIG_SND_SOC_WM8804
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8804)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-wm8804-soundcard \
+ +kmod-i2c-bcm2835
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-hifiberry-digi/description
+ This package contains support for HifiBerry Digi
+endef
+
+$(eval $(call KernelPackage,sound-soc-hifiberry-digi))
+
+
+define KernelPackage/sound-soc-hifiberry-amp
+ TITLE:=Support for HifiBerry Amp
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP \
+ CONFIG_SND_SOC_TAS5713
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-tas5713.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-tas5713)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-simple-soundcard \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-hifiberry-amp/description
+ This package contains support for HifiBerry Amp
+endef
+
+$(eval $(call KernelPackage,sound-soc-hifiberry-amp))
+
+
+define KernelPackage/sound-soc-iqaudio-codec
+ TITLE:=Support for IQaudIO-CODEC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC \
+ CONFIG_SND_SOC_DA7213
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-iqaudio-codec.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-da7213.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-da7213 snd-soc-iqaudio-codec)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-iqaudio-codec/description
+ This package contains support for IQaudIO-CODEC
+endef
+
+$(eval $(call KernelPackage,sound-soc-iqaudio-codec))
+
+
+define KernelPackage/sound-soc-iqaudio-dac
+ TITLE:=Support for IQaudIO-DAC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC \
+ CONFIG_SND_SOC_PCM512x \
+ CONFIG_SND_SOC_PCM512x_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-iqaudio-dac.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x snd-soc-pcm512x-i2c \
+ snd-soc-iqaudio-dac)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-iqaudio-dac/description
+ This package contains support for IQaudIO-DAC
+endef
+
+$(eval $(call KernelPackage,sound-soc-iqaudio-dac))
+
+
+define KernelPackage/sound-soc-iqaudio-digi
+ TITLE:=Support for IQaudIO-DIGI
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI \
+ CONFIG_SND_SOC_WM8804 \
+ CONFIG_SND_SOC_WM8804_I2C
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8804 snd-soc-wm8804-i2c)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-wm8804-soundcard \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-iqaudio-digi/description
+ This package contains support for IQaudIO-DIGI
+endef
+
+$(eval $(call KernelPackage,sound-soc-iqaudio-digi))
+
+
+define KernelPackage/sound-soc-i-sabe-q2m
+ TITLE:=Support for Audiophonics I-Sabre Q2M DAC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M \
+ CONFIG_SND_SOC_I_SABRE_CODEC
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-i-sabre-q2m.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-i-sabre-codec.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-i-sabre-codec snd-soc-i-sabre-q2m)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-i-sabe-q2m/description
+ This package contains support for Audiophonics I-SABRE Q2M DAC
+endef
+
+$(eval $(call KernelPackage,sound-soc-i-sabe-q2m))
+
+
+define KernelPackage/sound-soc-justboom-dac
+ TITLE:=Support for JustBoom DAC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC \
+ CONFIG_SND_SOC_PCM512x
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-justboom-dac.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x snd-soc-justboom-dac)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-justboom-dac/description
+ This package contains support for JustBoom DAC
+endef
+
+$(eval $(call KernelPackage,sound-soc-justboom-dac))
+
+
+define KernelPackage/sound-soc-justboom-digi
+ TITLE:=Support for JustBoom Digi
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI \
+ CONFIG_SND_SOC_WM8804
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8804)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-wm8804-soundcard \
+ +kmod-i2c-bcm2835
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-justboom-digi/description
+ This package contains support for JustBoom Digi
+endef
+
+$(eval $(call KernelPackage,sound-soc-justboom-digi))
+
+
+define KernelPackage/sound-soc-pisound
+ TITLE:=Support for Blokas Labs PiSound
+ KCONFIG:= \
+ CONFIG_SND_PISOUND \
+ CONFIG_SND_SOC_PCM5102A
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-pisound.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm5102a snd-soc-pisound)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-pisound/description
+ This package contains support for Blokas Labs PiSound
+endef
+
+$(eval $(call KernelPackage,sound-soc-pisound))
+
+
+define KernelPackage/sound-soc-rpi-cirrus
+ TITLE:=Support for Cirrus Logic Audio Card
+ KCONFIG:= \
+ CONFIG_GPIO_ARIZONA \
+ CONFIG_INPUT_ARIZONA_HAPTICS=n \
+ CONFIG_MFD_ARIZONA=y \
+ CONFIG_MFD_ARIZONA_I2C \
+ CONFIG_MFD_CS47L24=n \
+ CONFIG_MFD_WM5102=n \
+ CONFIG_MFD_WM5110=n \
+ CONFIG_MFD_WM8997=n \
+ CONFIG_MFD_WM8998=n \
+ CONFIG_REGULATOR_ARIZONA \
+ CONFIG_REGULATOR_ARIZONA_LDO1 \
+ CONFIG_REGULATOR_ARIZONA_MICSUPP \
+ CONFIG_SND_BCM2708_SOC_RPI_CIRRUS \
+ CONFIG_SND_SOC_ARIZONA \
+ CONFIG_SND_SOC_WM5102 \
+ CONFIG_SND_SOC_WM8804 \
+ CONFIG_SND_SOC_WM_ADSP
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-rpi-cirrus.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-arizona.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm-adsp.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm5102.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm1794a snd-soc-rpi-cirrus)
+ DEPENDS:= \
+ +kmod-i2c-bcm2835 \
+ kmod-sound-soc-bcm2835-i2s
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-rpi-cirrus/description
+ This package contains support for RPi-Cirrus
+endef
+
+$(eval $(call KernelPackage,sound-soc-rpi-cirrus))
+
+
+define KernelPackage/sound-soc-rpi-dac
+ TITLE:=Support for RPi-DAC
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_RPI_DAC \
+ CONFIG_SND_SOC_PCM1794A
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm1794a.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm1794a)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-sound-soc-rpi-simple-soundcard \
+ +kmod-i2c-bcm2835
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-rpi-dac/description
+ This package contains support for RPi-DAC
+endef
+
+$(eval $(call KernelPackage,sound-soc-rpi-dac))
+
+
+define KernelPackage/sound-soc-rpi-proto
+ TITLE:=Support for RPi-PROTO
+ KCONFIG:= \
+ CONFIG_SND_BCM2708_SOC_RPI_PROTO \
+ CONFIG_SND_SOC_WM8731
+ FILES:= \
+ $(LINUX_DIR)/sound/soc/bcm/snd-soc-rpi-proto.ko \
+ $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8731.ko
+ AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8731 snd-soc-rpi-proto)
+ DEPENDS:= \
+ kmod-sound-soc-bcm2835-i2s \
+ +kmod-i2c-bcm2835 \
+ +kmod-regmap-i2c \
+ +kmod-regmap-spi
+ $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-rpi-proto/description
+ This package contains support for RPi-PROTO
+endef
+
+$(eval $(call KernelPackage,sound-soc-rpi-proto))
diff --git a/target/linux/brcm2708/modules/spi.mk b/target/linux/brcm2708/modules/spi.mk
new file mode 100644
index 0000000000..eaddbadf6f
--- /dev/null
+++ b/target/linux/brcm2708/modules/spi.mk
@@ -0,0 +1,43 @@
+#
+# Copyright (C) 2019 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define KernelPackage/spi-bcm2835
+ SUBMENU:=$(SPI_MENU)
+ TITLE:=BCM2835 SPI controller driver
+ KCONFIG:=\
+ CONFIG_SPI=y \
+ CONFIG_SPI_BCM2835 \
+ CONFIG_SPI_MASTER=y
+ FILES:=$(LINUX_DIR)/drivers/spi/spi-bcm2835.ko
+ AUTOLOAD:=$(call AutoLoad,89,spi-bcm2835)
+ DEPENDS:=@TARGET_brcm2708
+endef
+
+define KernelPackage/spi-bcm2835/description
+ This package contains the Broadcom 2835 SPI master controller driver
+endef
+
+$(eval $(call KernelPackage,spi-bcm2835))
+
+
+define KernelPackage/spi-bcm2835-aux
+ SUBMENU:=$(SPI_MENU)
+ TITLE:=BCM2835 Aux SPI controller driver
+ KCONFIG:=\
+ CONFIG_SPI=y \
+ CONFIG_SPI_BCM2835AUX \
+ CONFIG_SPI_MASTER=y
+ FILES:=$(LINUX_DIR)/drivers/spi/spi-bcm2835aux.ko
+ AUTOLOAD:=$(call AutoLoad,89,spi-bcm2835aux)
+ DEPENDS:=@TARGET_brcm2708
+endef
+
+define KernelPackage/spi-bcm2835-aux/description
+ This package contains the Broadcom 2835 Aux SPI master controller driver
+endef
+
+$(eval $(call KernelPackage,spi-bcm2835-aux))
diff --git a/target/linux/brcm2708/modules/video.mk b/target/linux/brcm2708/modules/video.mk
new file mode 100644
index 0000000000..7f5b05060f
--- /dev/null
+++ b/target/linux/brcm2708/modules/video.mk
@@ -0,0 +1,85 @@
+#
+# Copyright (C) 2019 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define KernelPackage/camera-bcm2835
+ TITLE:=BCM2835 Camera
+ KCONFIG:= \
+ CONFIG_VIDEO_BCM2835 \
+ CONFIG_VIDEO_BCM2835_MMAL
+ FILES:= \
+ $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko
+ AUTOLOAD:=$(call AutoLoad,65,bcm2835-v4l2)
+ $(call AddDepends/video,@TARGET_brcm2708 +kmod-vchiq-mmal-bcm2835 +kmod-video-videobuf2)
+endef
+
+define KernelPackage/camera-bcm2835/description
+ Camera host interface devices for Broadcom BCM2835 SoC.
+ This operates over the VCHIQ interface to a service running on VideoCore.
+endef
+
+$(eval $(call KernelPackage,camera-bcm2835))
+
+
+define KernelPackage/drm-vc4
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=Broadcom VC4 Graphics
+ DEPENDS:= \
+ @TARGET_brcm2708 +kmod-drm \
+ +kmod-sound-core \
+ +kmod-sound-soc-core
+ KCONFIG:= \
+ CONFIG_DRM_VC4 \
+ CONFIG_DRM_VC4_HDMI_CEC=n \
+ CONFIG_DRM_V3D=n \
+ CONFIG_DRM_TVE200=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/gpu/drm/vc4/vc4.ko \
+ $(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko
+ AUTOLOAD:=$(call AutoProbe,vc4)
+endef
+
+define KernelPackage/drm-vc4/description
+ Direct Rendering Manager (DRM) support for Broadcom VideoCore IV GPU
+ used in BCM2835, BCM2836 and BCM2837 SoCs (e.g. Raspberry Pi).
+endef
+
+$(eval $(call KernelPackage,drm-vc4))
+
+
+define KernelPackage/vc-sm-cma
+ TITLE:=VideoCore Shared Memory (CMA) driver
+ KCONFIG:= \
+ CONFIG_BCM_VC_SM_CMA
+ FILES:= \
+ $(LINUX_DIR)/drivers/staging/vc04_services/vc-sm-cma/vc-sm-cma.ko
+ $(call AddDepends/video,@TARGET_brcm2708)
+endef
+
+define KernelPackage/vc-sm-cma/description
+ Shared memory interface that supports sharing dmabufs with VideoCore.
+ This operates over the VCHIQ interface to a service running on VideoCore.
+endef
+
+$(eval $(call KernelPackage,vc-sm-cma))
+
+
+define KernelPackage/vchiq-mmal-bcm2835
+ TITLE:=BCM2835 MMAL VCHIQ service
+ KCONFIG:= \
+ CONFIG_BCM2835_VCHIQ_MMAL \
+ CONFIG_VIDEO_CODEC_BCM2835=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq.ko
+ $(call AddDepends/video,@TARGET_brcm2708 +kmod-vc-sm-cma)
+endef
+
+define KernelPackage/vchiq-mmal-bcm2835/description
+ Enables the MMAL API over VCHIQ as used for the
+ majority of the multimedia services on VideoCore.
+endef
+
+$(eval $(call KernelPackage,vchiq-mmal-bcm2835))