files.bcm2835 revision 1.45 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