# $NetBSD: files.imx6,v 1.18 2019/07/27 08:02:04 skrll Exp $
#
# Configuration info for the Freescale i.MX6
#
include "arch/arm/pic/files.pic"
include "arch/arm/cortex/files.cortex"
defparam opt_imx.h MEMSIZE
defflag opt_imx.h IMX6
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
file arch/arm/imx/imx6_board.c
# iMX6 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/imx6_axi.c axi
# iMX6 PCIe
device imxpcie: pcibus
attach imxpcie at axi with imx6_pcie
file arch/arm/imx/imxpcie.c imxpcie
file arch/arm/imx/imx6_pcie.c imx6_pcie
# iMX6 Clock Control Module
device imxccm : clk
attach imxccm at axi
file arch/arm/imx/imx6_ccm.c imxccm needs-flag
file arch/arm/imx/imx6_clk.c imxccm
defparam opt_imx6clk.h IMX6_OSC_FREQ
defparam opt_imx6clk.h IMX6_CKIL_FREQ
defparam opt_imx6clk.h IMX6_CKIH_FREQ
defparam opt_imx6clk.h IMX6_ANACLK1_FREQ
defparam opt_imx6clk.h IMX6_ANACLK2_FREQ
# iMX6 Enhanced Periodic Interrupt Timer
device imxclock
attach imxclock at axi
file arch/arm/imx/imxclock.c imxclock
file arch/arm/imx/imx6_clock.c imxclock
# iMX6 On-Chip OTP Controller
device imxocotp
attach imxocotp at axi
file arch/arm/imx/imx6_ocotp.c imxocotp needs-flag
# Watchdog
device imxwdog: sysmon_wdog
attach imxwdog at axi
file arch/arm/imx/imx6_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 needs-flag
file arch/arm/imx/imx6_gpio.c imxgpio
# iMX6 IOMUX
device imxiomux
attach imxiomux at axi
file arch/arm/imx/imx6_iomux.c imxiomux
# iMX iic Controler
device imxi2c: motoi2c, i2cbus, i2cexec
attach imxi2c at axi
file arch/arm/imx/imxi2c.c imxi2c
file arch/arm/imx/imx6_i2c.c imxi2c
# iMX UART
device imxuart
attach imxuart at axi with imx6_uart
file arch/arm/imx/imxuart.c imxuart needs-flag
file arch/arm/imx/imx6_uart.c imx6_uart
defflag opt_imxuart.h IMXUARTCONSOLE
# iMX6 10/100/1000-Mbps Ethernet MAC(ENET)
device enet: ether, ifnet, arp, mii, bus_dma_generic
attach enet at axi
file arch/arm/imx/if_enet.c enet
file arch/arm/imx/if_enet_imx6.c enet
# USB Controller
# attach of this driver need to be specified in paltform configuration
device imxusbc { unit, irq } : bus_dma_generic
file arch/arm/imx/imx6_usb.c imxusbc
# USB Phy
device imxusbphy
attach imxusbphy at axi
file arch/arm/imx/imx6_usbphy.c imxusbphy
attach ehci at imxusbc with imxehci
file arch/arm/imx/imxusb.c imxehci
# uSDHC
attach sdhc at axi with sdhc_axi
file arch/arm/imx/imx6_usdhc.c sdhc_axi
# iMX6 SATA Controllers (AHCI)
attach ahcisata at axi with imx6_ahcisata
file arch/arm/imx/imx6_ahcisata.c imx6_ahcisata
# iMX6 Secure Non-Volatile Storage (SNVS)
device imxsnvs
attach imxsnvs at axi
file arch/arm/imx/imxsnvs.c imxsnvs
file arch/arm/imx/imx6_snvs.c imxsnvs