# $NetBSD: files.bcm2835,v 1.43 2022/04/22 12:41:06 skrll Exp $
#
# Configuration info for Broadcom BCM2835 ARM Peripherals
#
file arch/arm/broadcom/bcm2835_dma.c
file arch/arm/broadcom/bcm2835_mbox_subr.c
file arch/arm/broadcom/bcm283x_platform.c
define bcmmboxbus { }
# Interrupt Controller (BCM2835_ARMICU_BASE)
device bcmicu: pic, pic_splfuncs
attach bcmicu at fdt with bcmicu
file arch/arm/broadcom/bcm2835_intr.c bcmicu
# VC Mailbox (BCM2835_ARMMBOX_BASE)
device bcmmbox: bcmmboxbus
file arch/arm/broadcom/bcm2835_mbox.c bcmmbox
attach bcmmbox at fdt with bcmmbox_fdt
file arch/arm/broadcom/bcm2835_mbox_fdt.c bcmmbox_fdt
ifdef acpinodebus
attach bcmmbox at acpinodebus with bcmmbox_acpi
file arch/arm/broadcom/bcm2835_mbox_acpi.c bcmmbox_acpi
endif
# System Timer (BCM2835_TIMER_BASE)
device bcmtmr
attach bcmtmr at fdt with bcmtmr_fdt
file arch/arm/broadcom/bcm2835_tmr.c bcmtmr & !soc_bcm2836
# Power Management, Reset Controller, and Watchdog (BCM2835_PM_BASE)
device bcmpmwdog: sysmon_wdog
attach bcmpmwdog at fdt with bcmpmwdog_fdt
file arch/arm/broadcom/bcm2835_pmwdog.c bcmpmwdog_fdt
# Random number generator (BCM2835_RNG_BASE)
device bcmrng
attach bcmrng at fdt with bcmrng_fdt
file arch/arm/broadcom/bcm2835_rng.c bcmrng
# Random number generator (BCM2835_RNG_BASE (!))
device bcm2838rng
attach bcm2838rng at fdt with bcm2838rng_fdt
file arch/arm/broadcom/bcm2838_rng.c bcm2838rng
file dev/ic/rng200.c bcm2838rng
# Broadcom STB PCIE host
device bcm2838pcie: pcibus
attach bcm2838pcie at fdt with bcm2838pcie_fdt
file arch/arm/broadcom/bcm2838_pcie.c bcm2838pcie
# AUX
device bcmaux
attach bcmaux at fdt with bcmaux_fdt
file arch/arm/broadcom/bcm2835_aux.c bcmaux
# AUX UART (BCM2835_AUX_UART_BASE)
attach com at fdt with bcmcom
file arch/arm/broadcom/bcm2835_com.c bcmcom
ifdef acpinodebus
attach com at acpinodebus with bcmcom_acpi
file arch/arm/broadcom/bcm2835_com_acpi.c bcmcom_acpi
endif
# External Mass Media Controller (BCM2835_EMMC_BASE)
attach sdhc at fdt with bcmemmc
file arch/arm/broadcom/bcm2835_emmc.c bcmemmc
ifdef acpinodebus
attach sdhc at acpinodebus with bcmemmc_acpi
file arch/arm/broadcom/bcm2835_emmc_acpi.c bcmemmc_acpi
attach sdhc at acpinodebus with bcmemmc2_acpi
file arch/arm/broadcom/bcm2838_emmc2_acpi.c bcmemmc2_acpi
endif
# SD Host Controller (BCM2835_SDHOST_BASE)
device bcmsdhost: sdmmcbus
attach bcmsdhost at fdt with bcmsdhost
file arch/arm/broadcom/bcm2835_sdhost.c bcmsdhost needs-flag
# DMA Controller (BCM2835_DMA0_BASE)
device bcmdmac
attach bcmdmac at fdt with bcmdmac_fdt
file arch/arm/broadcom/bcm2835_dmac.c bcmdmac needs-flag
# USB (BCM2835_USB_BASE)
attach dwctwo at fdt with bcmdwctwo
file arch/arm/broadcom/bcm2835_dwctwo.c bcmdwctwo needs-flag
# SPI controller (BCM2835_SPI0_BASE)
device bcmspi: spibus, bcm2835_gpio_subr
attach bcmspi at fdt
file arch/arm/broadcom/bcm2835_spi.c bcmspi needs-flag
# BSC (I2C) controller (BCM2835_BSC[01]_BASE)
device bsciic: i2cbus, bcm2835_gpio_subr
file arch/arm/broadcom/bcm2835_bsc.c bsciic needs-flag
attach bsciic at fdt with bsciic_fdt
file arch/arm/broadcom/bcm2835_bsc_fdt.c bsciic_fdt
ifdef acpinodebus
attach bsciic at acpinodebus with bsciic_acpi
file arch/arm/broadcom/bcm2835_bsc_acpi.c bsciic_acpi
endif
# Generic framebuffer console driver
attach genfb at fdt with bcmgenfb: edid
file arch/arm/broadcom/bcm2835_genfb.c bcmgenfb needs-flag
# VCHIQ
include "external/bsd/vchiq/conf/files.vchiq"
# VC audio
device vcaudio: audiobus
attach vcaudio at vchiqbus
file arch/arm/broadcom/bcm2835_vcaudio.c vcaudio
# GPIO
device bcmgpio: gpiobus
attach bcmgpio at fdt
file arch/arm/broadcom/bcm2835_gpio.c
# Clock Manager (BCM2835_CM_BASE)
device bcmcprman
attach bcmcprman at fdt with bcmcprman_fdt
file arch/arm/broadcom/bcm2835_cprman.c bcmcprman needs-flag
# PWM Controller (BCM2835_PWM_BASE)
device bcmpwm
attach bcmpwm at fdt with bcmpwm
file arch/arm/broadcom/bcm2835_pwm.c bcmpwm needs-flag
# VideoCore IV property interface
file arch/evbarm/rpi/vcprop_subr.c bcmmbox
makeoptions "COPTS.vcprop_subr.c"+="-fno-stack-protector"
# Raspberry Pi Mailbox interface
device vcmbox: sysmon_envsys
attach vcmbox at bcmmboxbus
file arch/evbarm/rpi/rpi_vcmbox.c vcmbox
# Maximum command-line length
defparam opt_vcprop.h VCPROP_MAXCMDLINE
defflag opt_rpi.h RPI_HWCURSOR
# SOC parameters
defflag opt_bcm283x.h SOC_BCM2835
defflag opt_bcm283x.h SOC_BCM2836
defflag opt_bcm283x.h SOC_BCM2837: SOC_BCM2836