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