1 # $NetBSD: files.bcm2835,v 1.45 2025/09/10 13:06:22 thorpej Exp $ 2 # 3 # Configuration info for Broadcom BCM2835 ARM Peripherals 4 # 5 6 file arch/arm/broadcom/bcm2835_dma.c 7 file arch/arm/broadcom/bcm2835_mbox_subr.c 8 file arch/arm/broadcom/bcm283x_platform.c 9 10 define bcmmboxbus { } 11 12 # Interrupt Controller (BCM2835_ARMICU_BASE) 13 device bcmicu: pic, pic_splfuncs 14 attach bcmicu at fdt with bcmicu 15 file arch/arm/broadcom/bcm2835_intr.c bcmicu 16 17 # VC Mailbox (BCM2835_ARMMBOX_BASE) 18 device bcmmbox: bcmmboxbus 19 file arch/arm/broadcom/bcm2835_mbox.c bcmmbox 20 attach bcmmbox at fdt with bcmmbox_fdt 21 file arch/arm/broadcom/bcm2835_mbox_fdt.c bcmmbox_fdt 22 23 ifdef acpinodebus 24 attach bcmmbox at acpinodebus with bcmmbox_acpi 25 file arch/arm/broadcom/bcm2835_mbox_acpi.c bcmmbox_acpi 26 endif 27 28 # System Timer (BCM2835_TIMER_BASE) 29 device bcmtmr 30 attach bcmtmr at fdt with bcmtmr_fdt 31 file arch/arm/broadcom/bcm2835_tmr.c bcmtmr & !soc_bcm2836 32 33 # Power Management, Reset Controller, and Watchdog (BCM2835_PM_BASE) 34 device bcmpmwdog: fdt_power, sysmon_wdog 35 attach bcmpmwdog at fdt with bcmpmwdog_fdt 36 file arch/arm/broadcom/bcm2835_pmwdog.c bcmpmwdog_fdt 37 38 # Random number generator (BCM2835_RNG_BASE) 39 device bcmrng 40 attach bcmrng at fdt with bcmrng_fdt 41 file arch/arm/broadcom/bcm2835_rng.c bcmrng 42 43 # Random number generator (BCM2835_RNG_BASE (!)) 44 device bcm2838rng 45 attach bcm2838rng at fdt with bcm2838rng_fdt 46 file arch/arm/broadcom/bcm2838_rng.c bcm2838rng 47 file dev/ic/rng200.c bcm2838rng 48 49 # Broadcom STB PCIE host 50 device bcm2838pcie: pcibus 51 attach bcm2838pcie at fdt with bcm2838pcie_fdt 52 file arch/arm/broadcom/bcm2838_pcie.c bcm2838pcie 53 54 # AUX 55 device bcmaux: fdt_clock 56 attach bcmaux at fdt with bcmaux_fdt 57 file arch/arm/broadcom/bcm2835_aux.c bcmaux 58 59 # AUX UART (BCM2835_AUX_UART_BASE) 60 attach com at fdt with bcmcom: fdt_clock 61 file arch/arm/broadcom/bcm2835_com.c bcmcom 62 63 ifdef acpinodebus 64 attach com at acpinodebus with bcmcom_acpi 65 file arch/arm/broadcom/bcm2835_com_acpi.c bcmcom_acpi 66 endif 67 68 # External Mass Media Controller (BCM2835_EMMC_BASE) 69 attach sdhc at fdt with bcmemmc: fdt_clock 70 file arch/arm/broadcom/bcm2835_emmc.c bcmemmc 71 72 ifdef acpinodebus 73 attach sdhc at acpinodebus with bcmemmc_acpi 74 file arch/arm/broadcom/bcm2835_emmc_acpi.c bcmemmc_acpi 75 attach sdhc at acpinodebus with bcmemmc2_acpi 76 file arch/arm/broadcom/bcm2838_emmc2_acpi.c bcmemmc2_acpi 77 endif 78 79 # SD Host Controller (BCM2835_SDHOST_BASE) 80 device bcmsdhost: sdmmcbus 81 attach bcmsdhost at fdt with bcmsdhost: fdt_clock 82 file arch/arm/broadcom/bcm2835_sdhost.c bcmsdhost needs-flag 83 84 # DMA Controller (BCM2835_DMA0_BASE) 85 device bcmdmac 86 attach bcmdmac at fdt with bcmdmac_fdt 87 file arch/arm/broadcom/bcm2835_dmac.c bcmdmac needs-flag 88 89 # USB (BCM2835_USB_BASE) 90 attach dwctwo at fdt with bcmdwctwo 91 file arch/arm/broadcom/bcm2835_dwctwo.c bcmdwctwo needs-flag 92 93 # SPI controller (BCM2835_SPI0_BASE) 94 device bcmspi: spibus, bcm2835_gpio_subr 95 attach bcmspi at fdt: fdt_spi 96 file arch/arm/broadcom/bcm2835_spi.c bcmspi needs-flag 97 98 # BSC (I2C) controller (BCM2835_BSC[01]_BASE) 99 device bsciic: i2cbus, bcm2835_gpio_subr 100 file arch/arm/broadcom/bcm2835_bsc.c bsciic needs-flag 101 attach bsciic at fdt with bsciic_fdt: fdt_clock, fdt_i2c 102 file arch/arm/broadcom/bcm2835_bsc_fdt.c bsciic_fdt 103 ifdef acpinodebus 104 attach bsciic at acpinodebus with bsciic_acpi 105 file arch/arm/broadcom/bcm2835_bsc_acpi.c bsciic_acpi 106 endif 107 108 # Generic framebuffer console driver 109 attach genfb at fdt with bcmgenfb: edid 110 file arch/arm/broadcom/bcm2835_genfb.c bcmgenfb needs-flag 111 112 # VCHIQ 113 include "external/bsd/vchiq/conf/files.vchiq" 114 115 # VC audio 116 device vcaudio: audiobus 117 attach vcaudio at vchiqbus 118 file arch/arm/broadcom/bcm2835_vcaudio.c vcaudio 119 120 # GPIO 121 device bcmgpio: fdt_gpio, fdt_pinctrl, gpiobus 122 attach bcmgpio at fdt 123 file arch/arm/broadcom/bcm2835_gpio.c 124 125 # Clock Manager (BCM2835_CM_BASE) 126 device bcmcprman: fdt_clock 127 attach bcmcprman at fdt with bcmcprman_fdt 128 file arch/arm/broadcom/bcm2835_cprman.c bcmcprman needs-flag 129 130 # PWM Controller (BCM2835_PWM_BASE) 131 device bcmpwm 132 attach bcmpwm at fdt with bcmpwm: fdt_clock 133 file arch/arm/broadcom/bcm2835_pwm.c bcmpwm needs-flag 134 135 # VideoCore IV property interface 136 file arch/evbarm/rpi/vcprop_subr.c bcmmbox 137 makeoptions "COPTS.vcprop_subr.c"+="-fno-stack-protector" 138 139 # Raspberry Pi Mailbox interface 140 device vcmbox: sysmon_envsys 141 attach vcmbox at bcmmboxbus 142 file arch/evbarm/rpi/rpi_vcmbox.c vcmbox 143 144 # Maximum command-line length 145 defparam opt_vcprop.h VCPROP_MAXCMDLINE 146 defflag opt_rpi.h RPI_HWCURSOR 147 148 # SOC parameters 149 defflag opt_bcm283x.h SOC_BCM2835 150 defflag opt_bcm283x.h SOC_BCM2836 151 defflag opt_bcm283x.h SOC_BCM2837: SOC_BCM2836 152