# $NetBSD: files.imx51,v 1.24 2020/06/21 16:33:34 skrll Exp $
#
# Configuration info for the Freescale i.MX5x
#
defparam opt_imx.h MEMSIZE
defflag opt_imx.h IMX51
defflag opt_imx.h IMX50
define bus_dma_generic
file arch/arm/arm32/arm32_boot.c
file arch/arm/arm32/arm32_kvminit.c
file arch/arm/arm32/arm32_reboot.c
file arch/arm/arm32/irq_dispatch.S
define bus_dma_generic
file arch/arm/arm32/armv7_generic_space.c
file arch/arm/arm/arm_generic_dma.c bus_dma_generic needs-flag
file arch/arm/arm/bus_space_a4x.S
# iMX51 AXI/AHB bus interface and SoC domains
device axi { [addr=-1], [size=0], [irq=-1], [irqbase=-1]} : bus_space_generic
attach axi at mainbus
file arch/arm/imx/imx51_axi.c axi
# iMX51 TrustZone Interrupt Controller
include "arch/arm/pic/files.pic"
device tzic: pic, pic_splfuncs
attach tzic at axi
file arch/arm/imx/imx51_tzic.c tzic needs-flag
# iMX51 Enhanced Periodic Interrupt Timer
device imxclock
attach imxclock at axi
file arch/arm/imx/imxclock.c
file arch/arm/imx/imx51_clock.c
# Clock Control Module
device imxccm
attach imxccm at axi
file arch/arm/imx/imx51_ccm.c imxccm needs-flag
defflag opt_imx51clk.h IMXCCMDEBUG
# frequency of external low frequency clock
# typically 32000, 32768, or 38400.
defparam opt_imx51clk.h IMX51_CKIL_FREQ
# frequency of on-chip oscillator. typeilcally 24000000.
defparam opt_imx51clk.h IMX51_OSC_FREQ
# following parameters are used when imxccm is not configured in the kernel.
defparam opt_imx51clk.h IMX51_AHBCLK_FREQ
defparam opt_imx51clk.h IMX51_IPGCLK_FREQ
# Watchdog
device imxwdog: sysmon_wdog
attach imxwdog at axi
file arch/arm/imx/imx51_wdog.c imxwdog
file arch/arm/imx/imxwdog.c imxwdog
# iMX GPIO
device imxgpio: gpiobus
attach imxgpio at axi
file arch/arm/imx/imxgpio.c imxgpio
file arch/arm/imx/imx51_gpio.c imxgpio
# iMX IOMUX
device imxiomux : bus_space_generic
attach imxiomux at axi
file arch/arm/imx/imx51_iomux.c imxiomux
# EPDC controller
# device epdc : bus_dma_generic, wsemuldisplaydev, rasops16, rasops8, rasops4, rasops_rotation, vcons
# file arch/arm/imx/imx50_epdc.c epdc needs-flag
# defflag opt_imx50_epdc.h IMXEPDCCONSOLE
# defparam opt_imx50_epdc.h EPDC_DEBUG
# IPU v3 controller
device ipu { }
file arch/arm/imx/imx51_ipuv3.c imx_ipuv3 needs-flag
defparam opt_imx51_ipuv3.h IPUV3_DEBUG
# Framebuffer console
attach genfb at ipu with imx_genfb
file arch/arm/imx/imx_genfb.c imx_genfb
# iMX M3IF - Multi Master Memory Interface
# iMX ESDCTL/MDDRC - Enhanced SDRAM/LPDDR memory controller
# iMX PCMCIA - PCMCIA memory controller
# iMX NANDFC - NAND Flash memory controller
# iMX WEIM - Wireless External Interface Module
# iMX UART
device imxuart
attach imxuart at axi with imx51_uart
file arch/arm/imx/imxuart.c imxuart needs-flag
file arch/arm/imx/imx51_uart.c imx51_uart
defflag opt_imxuart.h IMXUARTCONSOLE
# USB controller
# attach of this driver need to be specified in platform configuration
device imxusbc { unit, irq } : bus_dma_generic
file arch/arm/imx/imx51_usb.c imxusbc
attach ehci at imxusbc with imxehci
file arch/arm/imx/imxusb.c imxehci
# SD host controller for SD/MMC
attach sdhc at axi with sdhc_axi
file arch/arm/imx/imx51_esdhc.c sdhc_axi
# iic controller
device imxi2c: motoi2c, i2cbus, i2cexec
attach imxi2c at axi
file arch/arm/imx/imxi2c.c imxi2c
file arch/arm/imx/imx51_i2c.c imxi2c
# SPI bus controller
# attach of this driver need to be specified in platform configuration
# use flags to module version
device imxspi : spibus
file arch/arm/imx/imxspi.c imxspi
defparam opt_imxspi.h IMXSPINSLAVES
defparam opt_imxspi.h IMXSPI_DEBUG
# attach imxspi at axi with imx51_spi
# file arch/arm/imx/imx51_spi.c imx51_spi
# Smart Direct Memory Access Controller
# device imxsdma: dmover_service, bus_dma_generic
# attach imxsdma at axi
# file arch/arm/imx/imxsdma.c imxsdma
# file arch/arm/imx/imxsdmaprog.c imxsdma
# iis sound Controller (SSI module)
# device imxi2s {} : bus_dma_generic
# file arch/arm/imx/imx51_i2s.c imxi2s needs-flag
# PWM controller
device imxpwm: pwm, clk
file arch/arm/imx/imxpwm.c imxpwm
file arch/arm/imx/imx51_pwm.c imxpwm