files.bcm2835 revision 1.28 1 # $NetBSD: files.bcm2835,v 1.28 2017/07/30 23:48:32 jmcneill Exp $
2 #
3 # Configuration info for Broadcom BCM2835 ARM Peripherals
4 #
5
6 defflag opt_bcm283x.h BCM2836
7
8 include "arch/arm/pic/files.pic"
9
10 define bcmmboxbus { }
11
12 file arch/arm/arm32/irq_dispatch.S
13 file arch/arm/broadcom/bcm2835_dma.c
14 file arch/arm/broadcom/bcm2835_mbox_subr.c
15
16 # OBIO just an attach point
17 device obio { [addr=-1], [size=0], [intr=-1]
18 } : bus_space_generic, pic, pic_splfuncs
19 attach obio at mainbus
20 file arch/arm/broadcom/bcm2835_obio.c obio needs-count
21
22 # OBIO files
23 file arch/arm/broadcom/bcm2835_space.c obio
24 file arch/arm/arm/bus_space_a4x.S obio
25
26 # ARMv7 Generic Timer
27 device armgtmr
28 attach armgtmr at obio
29 file arch/arm/cortex/gtmr.c armgtmr
30
31 # Interrupt Controller (BCM2835_ARMICU_BASE) #, pic_splfuncs
32 device bcmicu: pic, pic_splfuncs
33 attach bcmicu at obio with bcmicu
34 file arch/arm/broadcom/bcm2835_intr.c bcmicu
35
36 # VC Mailbox (BCM2835_ARMMBOX_BASE)
37 device bcmmbox: bcmmboxbus
38 attach bcmmbox at obio with bcmmbox
39 file arch/arm/broadcom/bcm2835_mbox.c bcmmbox
40
41 # System Timer (BCM2835_TIMER_BASE)
42 device bcmtmr
43 attach bcmtmr at obio with bcmtmr_amba
44 file arch/arm/broadcom/bcm2835_tmr.c bcmtmr & !bcm2836
45
46 # Power Management, Reset Controller, and Watchdog (BCM2835_PM_BASE)
47 device bcmpm: sysmon_wdog
48 attach bcmpm at obio with bcmpm_amba
49 file arch/arm/broadcom/bcm2835_pm.c bcmpm
50
51 # Random number generator (BCM2835_RNG_BASE)
52 device bcmrng
53 attach bcmrng at obio with bcmrng_amba
54 file arch/arm/broadcom/bcm2835_rng.c bcmrng
55
56 # UART Interface (BCM2835_UART0_BASE)
57 attach plcom at obio with bcmplcom
58 file arch/arm/broadcom/bcm2835_plcom.c bcmplcom
59
60 # AUX UART (BCM2835_AUX_UART_BASE)
61 attach com at obio with bcmcom
62 file arch/arm/broadcom/bcm2835_com.c bcmcom
63
64 # External Mass Media Controller (BCM2835_EMMC_BASE)
65 attach sdhc at obio with bcmemmc
66 file arch/arm/broadcom/bcm2835_emmc.c bcmemmc
67
68 # SD Host Controller (BCM2835_SDHOST_BASE)
69 device sdhost: sdmmcbus
70 attach sdhost at obio with bcmsdhost
71 file arch/arm/broadcom/bcm2835_sdhost.c bcmsdhost needs-flag
72
73 # DMA Controller (BCM2835_DMA0_BASE)
74 device bcmdmac
75 attach bcmdmac at obio with bcmdmac_amba
76 file arch/arm/broadcom/bcm2835_dmac.c bcmdmac needs-flag
77
78 # USB (BCM2835_USB_BASE)
79 attach dwctwo at obio with bcmdwctwo
80 file arch/arm/broadcom/bcm2835_dwctwo.c bcmdwctwo needs-flag
81
82 # GPIO misc. functions
83 define bcm2835_gpio_subr
84 file arch/arm/broadcom/bcm2835_gpio_subr.c bcm2835_gpio_subr
85
86 # SPI controller (BCM2835_SPI0_BASE)
87 device bcmspi: spibus, bcm2835_gpio_subr
88 attach bcmspi at obio
89 file arch/arm/broadcom/bcm2835_spi.c bcmspi needs-flag
90
91 # BSC (I2C) controller (BCM2835_BSC[01]_BASE)
92 device bsciic: i2cbus, bcm2835_gpio_subr
93 attach bsciic at obio
94 file arch/arm/broadcom/bcm2835_bsc.c bsciic needs-flag
95
96 # Generic framebuffer console driver
97 attach genfb at obio with bcmgenfb: edid
98 file arch/arm/broadcom/bcm2835_genfb.c bcmgenfb needs-flag
99
100 # VCHIQ
101 include "external/bsd/vchiq/conf/files.vchiq"
102
103 # VC audio
104 device vcaudio: audiobus, auconv, mulaw, aurateconv, auvolconv
105 attach vcaudio at vchiqbus
106 file arch/arm/broadcom/bcm2835_vcaudio.c vcaudio
107
108 # GPIO
109 device bcmgpio: gpiobus
110 attach bcmgpio at obio
111 file arch/arm/broadcom/bcm2835_gpio.c
112
113 # Clock Manager (BCM2835_CM_BASE)
114 device bcmcm
115 attach bcmcm at obio with bcmcm_amba
116 file arch/arm/broadcom/bcm2835_cm.c bcmcm needs-flag
117
118 # PWM Controller (BCM2835_PWM_BASE)
119 device bcmpwm
120 attach bcmpwm at obio with bcmpwm_amba
121 file arch/arm/broadcom/bcm2835_pwm.c bcmpwm needs-flag
122
123