endef
$(eval $(call KernelPackage,smi-bcm2835-dev))
+
+
+define KernelPackage/pwm-pio-rp1
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=RP1 PWM support
+ KCONFIG:=CONFIG_PWM_PIO_RP1
+ FILES:=$(LINUX_DIR)/drivers/pwm/pwm-pio-rp1.ko
+ AUTOLOAD:=$(call AutoLoad,21,pwm-pio-rp1)
+ DEPENDS:=@TARGET_bcm27xx_bcm2712
+endef
+
+define KernelPackage/pwm-pio-rp1/description
+ Enables precise control of PWM signals for tasks like motor control,
+ LED dimming, and audio signal generation. Leveraging PIO allows for
+ higher accuracy and flexibility in PWM signal generation compared
+ to traditional hardware timers.
+endef
+
+$(eval $(call KernelPackage,pwm-pio-rp1))
+
+
+define KernelPackage/ws2812-pio-rp1
+ SUBMENU:=$(OTHER_MENU)
+ TITLE:=RP1 PIO-base WS2812 driver
+ KCONFIG:=CONFIG_WS2812_PIO_RP1
+ FILES:=$(LINUX_DIR)/drivers/misc/ws2812-pio-rp1.ko
+ AUTOLOAD:=$(call AutoLoad,21,ws2812-pio-rp1)
+ DEPENDS:=@TARGET_bcm27xx_bcm2712
+endef
+
+define KernelPackage/ws2812-pio-rp1/description
+ Driver for the WS2812 (NeoPixel) LEDs using the RP1 PIO hardware.
+ The driver creates a character device to which rgbw pixels may be
+ written. Single-byte writes to offset 0 set the brightness at runtime.
+endef
+
+$(eval $(call KernelPackage,ws2812-pio-rp1))
endef
$(eval $(call KernelPackage,vchiq-mmal-bcm2835))
+
+
+define KernelPackage/drm-rp1-dsi
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=RP1 Display Serial Interface for Video
+ KCONFIG:= \
+ CONFIG_DRM_RP1_DSI \
+ CONFIG_DRM_GEM_DMA_HELPER \
+ CONFIG_DRM_KMS_HELPER \
+ CONFIG_DRM_MIPI_DSI=y \
+ CONFIG_DRM_VRAM_HELPER=n \
+ CONFIG_DRM_TTM=n \
+ CONFIG_DRM_TTM_HELPER=n \
+ CONFIG_GENERIC_PHY_MIPI_DPHY=n \
+ CONFIG_DRM_WERROR=n
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-dsi/drm-rp1-dsi.ko
+ AUTOLOAD:=$(call AutoLoad,67,drm-rp1-dsi)
+ DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4
+endef
+
+define KernelPackage/drm-rp1-dsi/description
+ This module manages the DSI for driving high-resolution LCD panels
+ such as the official Raspberry Pi displays or other screens that
+ use the DSI interface.
+endef
+
+$(eval $(call KernelPackage,drm-rp1-dsi))
+
+
+define KernelPackage/drm-rp1-dpi
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=RP1 Display Parallel Interface for Video
+ KCONFIG:= \
+ CONFIG_DRM_RP1_DPI \
+ CONFIG_DRM_GEM_DMA_HELPER \
+ CONFIG_DRM_KMS_HELPER \
+ CONFIG_DRM_VRAM_HELPER=n \
+ CONFIG_DRM_TTM=n \
+ CONFIG_DRM_TTM_HELPER=n
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-dpi/drm-rp1-dpi.ko
+ AUTOLOAD:=$(call AutoLoad,67,drm-rp1-dpi)
+ DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4
+endef
+
+define KernelPackage/drm-rp1-dpi/description
+ This module is or driving displays using the DPI standard.
+ Useful for interfacing with custom or low-level LCD panels
+ that require parallel RGB signals. Provides direct control
+ over the timing and signal driving of raw LCD panels.
+ Typically used in maker projects or with non-HDMI displays.
+endef
+
+$(eval $(call KernelPackage,drm-rp1-dpi))
+
+
+define KernelPackage/drm-rp1-vec
+ SUBMENU:=$(VIDEO_MENU)
+ TITLE:=RP1 Display Composite Video
+ KCONFIG:= \
+ CONFIG_DRM_RP1_VEC \
+ CONFIG_DRM_GEM_DMA_HELPER \
+ CONFIG_DRM_KMS_HELPER \
+ CONFIG_DRM_VRAM_HELPER=n \
+ CONFIG_DRM_TTM=n \
+ CONFIG_DRM_TTM_HELPER=n
+ FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-vec/drm-rp1-vec.ko
+ AUTOLOAD:=$(call AutoLoad,67,drm-rp1-vec)
+ DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4
+endef
+
+define KernelPackage/drm-rp1-vec/description
+ This module is used for composite video output, which is typically
+ transmitted through the RCA jack. Primary use is onnecting older
+ TVs or monitors that rely on analog signals via a composite interface.
+ Handles standard-definition analog signals in NTSC and PAL.
+endef
+
+$(eval $(call KernelPackage,drm-rp1-vec))