#	$NetBSD: files.bcm2835,v 1.21.2.4 2015/03/15 22:55:47 snj Exp $
#
# Configuration info for Broadcom BCM2835 ARM Peripherals
#

defflag	opt_bcm283x.h			BCM2836

include "arch/arm/pic/files.pic"

define bcmmboxbus { }

file	arch/arm/arm32/irq_dispatch.S
file	arch/arm/broadcom/bcm2835_dma.c
file	arch/arm/broadcom/bcm2835_mbox_subr.c

# OBIO just an attach point
device	obio { [addr=-1], [size=0], [intr=-1]
	     } : bus_space_generic, pic, pic_splfuncs
attach	obio at mainbus
file	arch/arm/broadcom/bcm2835_obio.c	obio needs-count

# OBIO files
file	arch/arm/broadcom/bcm2835_space.c	obio
file	arch/arm/arm/bus_space_a4x.S		obio

# ARMv7 Generic Timer
device	armgtmr
attach	armgtmr at obio
file	arch/arm/cortex/gtmr.c			armgtmr

# Interrupt Controller (BCM2835_ARMICU_BASE) #, pic_splfuncs
device	bcmicu: pic, pic_splfuncs
attach	bcmicu at obio with bcmicu
file	arch/arm/broadcom/bcm2835_intr.c	bcmicu

# VC Mailbox (BCM2835_ARMMBOX_BASE)
device	bcmmbox: bcmmboxbus
attach	bcmmbox at obio with bcmmbox
file	arch/arm/broadcom/bcm2835_mbox.c	bcmmbox

# System Timer (BCM2835_TIMER_BASE)
device	bcmtmr
attach	bcmtmr at obio with bcmtmr_amba
file	arch/arm/broadcom/bcm2835_tmr.c		bcmtmr & !bcm2836

# Power Management, Reset Controller, and Watchdog (BCM2835_PM_BASE)
device	bcmpm: sysmon_wdog
attach	bcmpm at obio with bcmpm_amba
file	arch/arm/broadcom/bcm2835_pm.c		bcmpm

# Random number generator (BCM2835_RNG_BASE)
device	bcmrng
attach	bcmrng at obio with bcmrng_amba
file	arch/arm/broadcom/bcm2835_rng.c		bcmrng

# UART Interface (BCM2835_UART0_BASE)
attach	plcom at obio with bcmplcom
file	arch/arm/broadcom/bcm2835_plcom.c	bcmplcom

# External Mass Media Controller (BCM2835_EMMC_BASE)
attach	sdhc at obio with bcmemmc
file	arch/arm/broadcom/bcm2835_emmc.c	bcmemmc

# DMA Controller (BCM2835_DMA0_BASE)
device	bcmdmac
attach	bcmdmac at obio with bcmdmac_amba
file	arch/arm/broadcom/bcm2835_dmac.c	bcmdmac		needs-flag

# USB (BCM2835_USB_BASE)
attach dwctwo at obio with bcmdwctwo
file	arch/arm/broadcom/bcm2835_dwctwo.c	bcmdwctwo	needs-flag

# GPIO misc. functions
define	bcm2835_gpio_subr
file	arch/arm/broadcom/bcm2835_gpio_subr.c	bcm2835_gpio_subr

# SPI controller (BCM2835_SPI0_BASE)
device	bcmspi: spibus, bcm2835_gpio_subr
attach	bcmspi at obio
file	arch/arm/broadcom/bcm2835_spi.c		bcmspi	needs-flag

# BSC (I2C) controller (BCM2835_BSC[01]_BASE)
device	bsciic: i2cbus, bcm2835_gpio_subr
attach	bsciic at obio
file	arch/arm/broadcom/bcm2835_bsc.c		bsciic	needs-flag

# Generic framebuffer console driver
attach	genfb at obio 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, auconv, mulaw, aurateconv, auvolconv
attach	vcaudio at vchiqbus
file	arch/arm/broadcom/bcm2835_vcaudio.c	vcaudio

# GPIO
device	bcmgpio: gpiobus
attach	bcmgpio at obio
file	arch/arm/broadcom/bcm2835_gpio.c
