1#	$NetBSD: files.sunxi,v 1.72 2022/07/20 10:01:11 riastradh Exp $
2#
3# Configuration info for Allwinner sunxi family SoCs
4#
5#
6
7file	arch/arm/sunxi/sunxi_platform.c		soc_sunxi
8
9file	arch/arm/sunxi/sunxi_mc_smp.c		soc_sunxi_mc
10file	arch/arm/sunxi/sunxi_mc_mpstart.S	soc_sunxi_mc
11
12# CCU
13define	sunxi_ccu
14file	arch/arm/sunxi/sunxi_ccu.c		sunxi_ccu
15file	arch/arm/sunxi/sunxi_ccu_div.c		sunxi_ccu
16file	arch/arm/sunxi/sunxi_ccu_fixed_factor.c	sunxi_ccu
17file	arch/arm/sunxi/sunxi_ccu_fractional.c	sunxi_ccu
18file	arch/arm/sunxi/sunxi_ccu_gate.c		sunxi_ccu
19file	arch/arm/sunxi/sunxi_ccu_mux.c		sunxi_ccu
20file	arch/arm/sunxi/sunxi_ccu_nm.c		sunxi_ccu
21file	arch/arm/sunxi/sunxi_ccu_nkmp.c		sunxi_ccu
22file	arch/arm/sunxi/sunxi_ccu_phase.c	sunxi_ccu
23file	arch/arm/sunxi/sunxi_ccu_prediv.c	sunxi_ccu
24file	arch/arm/sunxi/sunxi_ccu_display.c	sunxi_ccu
25
26# CCU (A10/A20)
27device	sun4ia10ccu: sunxi_ccu
28attach	sun4ia10ccu at fdt with sunxi_a10_ccu
29file	arch/arm/sunxi/sun4i_a10_ccu.c		sunxi_a10_ccu
30
31# CCU (A13)
32device	sun5ia13ccu: sunxi_ccu
33attach	sun5ia13ccu at fdt with sunxi_a13_ccu
34file	arch/arm/sunxi/sun5i_a13_ccu.c		sunxi_a13_ccu
35
36# CCU (A31)
37device	sun6ia31ccu: sunxi_ccu
38attach	sun6ia31ccu at fdt with sunxi_a31_ccu
39file	arch/arm/sunxi/sun6i_a31_ccu.c		sunxi_a31_ccu
40
41# CCU (A83T)
42device	sun8ia83tccu: sunxi_ccu
43attach	sun8ia83tccu at fdt with sunxi_a83t_ccu
44file	arch/arm/sunxi/sun8i_a83t_ccu.c		sunxi_a83t_ccu
45
46# CCU (H3)
47device	sun8ih3ccu: sunxi_ccu
48attach	sun8ih3ccu at fdt with sunxi_h3_ccu
49file	arch/arm/sunxi/sun8i_h3_ccu.c		sunxi_h3_ccu
50
51# CCU (H3 PRCM)
52device	sun8ih3rccu: sunxi_ccu
53attach	sun8ih3rccu at fdt with sunxi_h3_r_ccu
54file	arch/arm/sunxi/sun8i_h3_r_ccu.c		sunxi_h3_r_ccu
55
56# CCU (V3s)
57device	sun8iv3sccu: sunxi_ccu
58attach	sun8iv3sccu at fdt with sunxi_v3s_ccu
59file	arch/arm/sunxi/sun8i_v3s_ccu.c		sunxi_v3s_ccu
60
61# CCU (A80)
62device	sun9ia80ccu: sunxi_ccu
63attach	sun9ia80ccu at fdt with sunxi_a80_ccu
64file	arch/arm/sunxi/sun9i_a80_ccu.c		sunxi_a80_ccu
65
66# CCU (A64)
67device	sun50ia64ccu: sunxi_ccu
68attach	sun50ia64ccu at fdt with sunxi_a64_ccu
69file	arch/arm/sunxi/sun50i_a64_ccu.c		sunxi_a64_ccu
70
71# CCU (A64 PRCM)
72device	sun50ia64rccu: sunxi_ccu
73attach	sun50ia64rccu at fdt with sunxi_a64_r_ccu
74file	arch/arm/sunxi/sun50i_a64_r_ccu.c	sunxi_a64_r_ccu
75
76# CCU (H6)
77device	sun50ih6ccu: sunxi_ccu
78attach	sun50ih6ccu at fdt with sunxi_h6_ccu
79file	arch/arm/sunxi/sun50i_h6_ccu.c		sunxi_h6_ccu
80
81# CCU (H6 PRCM)
82device	sun50ih6rccu: sunxi_ccu
83attach	sun50ih6rccu at fdt with sunxi_h6_r_ccu
84file	arch/arm/sunxi/sun50i_h6_r_ccu.c	sunxi_h6_r_ccu
85
86# Misc. clock resets
87device	sunxiresets
88attach	sunxiresets at fdt with sunxi_resets
89file	arch/arm/sunxi/sunxi_resets.c		sunxi_resets
90
91# Misc. clock gates
92device	sunxigates
93attach	sunxigates at fdt with sunxi_gates
94file	arch/arm/sunxi/sunxi_gates.c		sunxi_gates
95
96# GMAC MII/RGMII clock mux
97device	sunxigmacclk
98attach	sunxigmacclk at fdt with sunxi_gmacclk
99file	arch/arm/sunxi/sunxi_gmacclk.c		sunxi_gmacclk
100
101# SD/MMC-COMM (A80)
102device	sun9immcclk
103attach	sun9immcclk at fdt with sunxi_a80_mmcclk
104file	arch/arm/sunxi/sun9i_a80_mmcclk.c	sunxi_a80_mmcclk
105
106# USB HCI clocks (A80)
107device	sun9iusbclk
108attach	sun9iusbclk at fdt with sunxi_a80_usbclk
109file	arch/arm/sunxi/sun9i_a80_usbclk.c	sunxi_a80_usbclk
110
111# CPUS clock driver (A80)
112device	sun9icpusclk
113attach	sun9icpusclk at fdt with sunxi_a80_cpusclk
114file	arch/arm/sunxi/sun9i_a80_cpusclk.c	sunxi_a80_cpusclk
115
116# APB0 clock driver (A80)
117device	sun8iapbclk
118attach	sun8iapbclk at fdt with sunxi_a23_apbclk
119file	arch/arm/sunxi/sun8i_a23_apbclk.c	sunxi_a23_apbclk
120
121# Interrupt controller
122device	sunxiintc: pic, pic_splfuncs
123attach	sunxiintc at fdt with sunxi_intc
124file	arch/arm/sunxi/sunxi_intc.c		sunxi_intc
125
126device	sunxinmi
127attach	sunxinmi at fdt with sunxi_nmi
128file	arch/arm/sunxi/sunxi_nmi.c		sunxi_nmi
129
130# GPIO
131device	sunxigpio: gpiobus
132attach	sunxigpio at fdt with sunxi_gpio
133file	arch/arm/sunxi/sunxi_gpio.c		sunxi_gpio
134file	arch/arm/sunxi/sun4i_a10_gpio.c		sunxi_gpio & soc_sun4i_a10
135file	arch/arm/sunxi/sun5i_a13_gpio.c		sunxi_gpio & soc_sun5i_a13
136file	arch/arm/sunxi/sun6i_a31_gpio.c		sunxi_gpio & soc_sun6i_a31
137file	arch/arm/sunxi/sun7i_a20_gpio.c		sunxi_gpio & soc_sun7i_a20
138file	arch/arm/sunxi/sun8i_a83t_gpio.c	sunxi_gpio & soc_sun8i_a83t
139file	arch/arm/sunxi/sun8i_h3_gpio.c		sunxi_gpio & soc_sun8i_h3
140file	arch/arm/sunxi/sun8i_v3s_gpio.c		sunxi_gpio & soc_sun8i_v3s
141file	arch/arm/sunxi/sun9i_a80_gpio.c		sunxi_gpio & soc_sun9i_a80
142file	arch/arm/sunxi/sun50i_a64_gpio.c	sunxi_gpio & soc_sun50i_a64
143file	arch/arm/sunxi/sun50i_h6_gpio.c		sunxi_gpio & soc_sun50i_h6
144
145# PWM
146device	sunxipwm: pwm
147attach	sunxipwm at fdt with sunxi_pwm
148file	arch/arm/sunxi/sunxi_pwm.c		sunxi_pwm
149
150# SD/MMC
151device	sunximmc: sdmmcbus
152attach	sunximmc at fdt with sunxi_mmc
153file	arch/arm/sunxi/sunxi_mmc.c		sunxi_mmc
154defparam opt_sunximmc.h				SUNXI_MMC_DEBUG
155
156# USB PHY
157device	sunxiusbphy
158attach	sunxiusbphy at fdt with sunxi_usbphy
159file	arch/arm/sunxi/sunxi_usbphy.c		sunxi_usbphy
160
161device	sunxiusb3phy
162attach	sunxiusb3phy at fdt with sunxi_usb3phy
163file	arch/arm/sunxi/sunxi_usb3phy.c		sunxi_usb3phy
164
165device	sun9iusbphy
166attach	sun9iusbphy at fdt with sunxi_a80_usbphy
167file	arch/arm/sunxi/sun9i_a80_usbphy.c	sunxi_a80_usbphy
168
169# TWI
170device	sunxitwi: i2cbus, i2cexec, mvi2c
171attach	sunxitwi at fdt with sunxi_twi
172file	arch/arm/sunxi/sunxi_twi.c		sunxi_twi
173
174# P2WI/RSB
175device	sunxirsb: i2cbus, i2cexec
176attach	sunxirsb at fdt with sunxi_rsb
177file	arch/arm/sunxi/sunxi_rsb.c		sunxi_rsb
178
179# RTC
180device	sunxirtc
181attach	sunxirtc at fdt with sunxi_rtc
182file	arch/arm/sunxi/sunxi_rtc.c		sunxi_rtc
183
184# EMAC (common)
185device	emac: arp, ether, ifnet, mii
186
187# EMAC (sun4i/sun5i/sun7i)
188ifdef arm
189attach	emac at fdt with sun4i_emac
190file	arch/arm/sunxi/sun4i_emac.c		sun4i_emac
191endif
192
193# EMAC (sun8i/sun50i)
194attach	emac at fdt with sunxi_emac
195file	arch/arm/sunxi/sunxi_emac.c		sunxi_emac
196
197# GMAC
198attach	awge at fdt with sunxi_gmac
199file	arch/arm/sunxi/sunxi_gmac.c		sunxi_gmac
200
201# Timer
202device	sunxitimer
203attach	sunxitimer at fdt with sunxi_timer
204file	arch/arm/sunxi/sunxi_timer.c		sunxi_timer
205
206# High Speed Timer
207device	sunxihstimer
208attach	sunxihstimer at fdt with sunxi_hstimer
209file	arch/arm/sunxi/sunxi_hstimer.c		sunxi_hstimer
210
211# Watchdog
212device	sunxiwdt: sysmon_wdog
213attach	sunxiwdt at fdt with sunxi_wdt
214file	arch/arm/sunxi/sunxi_wdt.c		sunxi_wdt
215
216# DMA controller (sun4i)
217device	sun4idma
218attach	sun4idma at fdt with sun4i_dma
219file	arch/arm/sunxi/sun4i_dma.c		sun4i_dma
220
221# DMA controller (sun6i)
222device	sun6idma
223attach	sun6idma at fdt with sun6i_dma
224file	arch/arm/sunxi/sun6i_dma.c		sun6i_dma
225
226# Audio codec
227device	sunxicodec: audiobus
228attach	sunxicodec at fdt with sunxi_codec
229file	arch/arm/sunxi/sunxi_codec.c		sunxi_codec
230file	arch/arm/sunxi/sun4i_a10_codec.c	sunxi_codec
231file	arch/arm/sunxi/sun6i_a31_codec.c	sunxi_codec
232
233# Audio codec (sun8i)
234device	sun8icodec
235attach	sun8icodec at fdt with sun8i_codec
236file	arch/arm/sunxi/sun8i_codec.c		sun8i_codec
237
238# H3 Audio codec (analog part)
239device	h3codec
240attach	h3codec at fdt with h3_codec
241file	arch/arm/sunxi/sun8i_h3_codec.c		h3_codec needs-flag
242
243# V3s Audio codec (analog part)
244device	v3scodec
245attach	v3scodec at fdt with v3s_codec
246file	arch/arm/sunxi/sun8i_v3s_codec.c	v3s_codec needs-flag
247
248# A64 Audio codec (analog part)
249device	a64acodec
250attach	a64acodec at fdt with a64_acodec
251file	arch/arm/sunxi/sun50i_a64_acodec.c	a64_acodec
252
253# I2S/PCM controller
254device	sunxii2s
255attach	sunxii2s at fdt with sunxi_i2s
256file	arch/arm/sunxi/sunxi_i2s.c		sunxi_i2s
257
258# A10/A20 LCD/TV timing controller (TCON)
259device	sunxitcon
260attach	sunxitcon at fdt with sunxi_tcon
261file	arch/arm/sunxi/sunxi_tcon.c		sunxi_tcon needs-flag
262
263# A10/A20 Display engine backend (DE-BE)
264device	sunxidebe { }
265attach	sunxidebe at fdt with sunxi_debe
266file	arch/arm/sunxi/sunxi_debe.c		sunxi_debe needs-flag
267
268attach	genfb at sunxidebe with sunxi_befb
269
270# A10/A20 HDMI
271device	sunxihdmi: edid, videomode
272attach	sunxihdmi at fdt with sunxi_hdmi
273file	arch/arm/sunxi/sunxi_hdmi.c		sunxi_hdmi needs-flag
274
275# A10/A20 display engine pipeline
276device sunxidep
277attach	sunxidep at fdt with sunxi_dep
278file	arch/arm/sunxi/sunxi_dep.c		sunxi_dep
279
280# Touch Screen controller
281device	sunxits: wsmousedev, tpcalib, sysmon_envsys
282attach	sunxits at fdt with sunxi_ts
283file	arch/arm/sunxi/sunxi_ts.c		sunxi_ts
284
285# USB OTG
286attach	motg at fdt with sunxi_musb
287file	arch/arm/sunxi/sunxi_musb.c		sunxi_musb
288
289# Security ID EFUSE
290device	sunxisid
291attach	sunxisid at fdt with sunxi_sid
292file	arch/arm/sunxi/sunxi_sid.c		sunxi_sid
293
294# Thermal sensor controller
295device	sunxithermal: sysmon_envsys, sysmon_taskq
296attach	sunxithermal at fdt with sunxi_thermal
297file	arch/arm/sunxi/sunxi_thermal.c		sunxi_thermal
298
299# SATA
300attach	ahcisata at fdt with sunxi_sata
301file	arch/arm/sunxi/sunxi_sata.c		sunxi_sata
302
303# SRAM Controller
304device	sunxisramc
305attach	sunxisramc at fdt with sunxi_sramc
306file	arch/arm/sunxi/sunxi_sramc.c		sunxi_sramc
307
308# NAND Flash Controller
309device	sunxinand: nandbus
310attach	sunxinand at fdt with sunxi_nand
311file	arch/arm/sunxi/sunxi_nand.c		sunxi_nand
312
313# SPI Controller
314device	sun4ispi: spibus
315attach	sun4ispi at fdt with sun4i_spi
316file	arch/arm/sunxi/sun4i_spi.c		sun4i_spi
317device	sun6ispi: spibus
318attach	sun6ispi at fdt with sun6i_spi
319file	arch/arm/sunxi/sun6i_spi.c		sun6i_spi
320
321# A10/A20 CAN
322device	sunxican { } : ifnet
323attach	sunxican at fdt with sunxi_can
324file	arch/arm/sunxi/sunxi_can.c		sunxi_can
325
326# LRADC
327device	sunxilradc
328attach	sunxilradc at fdt with sunxi_lradc
329file	arch/arm/sunxi/sunxi_lradc.c		sunxi_lradc
330
331# DE2 bus
332device	sunxide2bus { }: fdt, sunxi_sramc
333attach	sunxide2bus at fdt with sunxi_de2bus
334file	arch/arm/sunxi/sunxi_de2.c		sunxi_de2bus
335
336# DE2 clocks
337device	sunxide2ccu: sunxi_ccu
338attach	sunxide2ccu at fdt with sunxi_de2ccu
339file	arch/arm/sunxi/sunxi_de2_ccu.c		sunxi_de2ccu
340
341# DE2 mixer
342device	sunximixer: drmkms
343attach	sunximixer at fdt with sunxi_mixer
344file	arch/arm/sunxi/sunxi_mixer.c		sunxi_mixer
345makeoptions	sunxi_mixer	"CPPFLAGS.sunxi_mixer"+="${CPPFLAGS.drmkms}"
346
347# DE2 timing controller
348device	sunxilcdc: drmkms
349attach	sunxilcdc at fdt with sunxi_lcdc
350file	arch/arm/sunxi/sunxi_lcdc.c		sunxi_lcdc
351makeoptions	sunxi_lcdc	"CPPFLAGS.sunxi_lcdc"+="${CPPFLAGS.drmkms}"
352
353# Display Pipeline
354define	sunxifbbus { }
355device	sunxidrm: drmkms, ddc_read_edid, sunxifbbus
356attach	sunxidrm at fdt with sunxi_drm
357file	arch/arm/sunxi/sunxi_drm.c		sunxi_drm
358makeoptions	sunxi_drm	"CPPFLAGS.sunxi_drm"+="${CPPFLAGS.drmkms}"
359
360# DRM framebuffer console
361device	sunxifb: sunxifbbus, drmfb, wsemuldisplaydev
362attach	sunxifb at sunxifbbus with sunxi_fb
363file	arch/arm/sunxi/sunxi_fb.c		sunxi_fb
364makeoptions	sunxi_fb	"CPPFLAGS.sunxi_fb"+="${CPPFLAGS.drmkms}"
365
366# Allwinner HDMI (Designware based)
367attach	dwhdmi at fdt with sunxi_dwhdmi
368file	arch/arm/sunxi/sunxi_dwhdmi.c		sunxi_dwhdmi
369makeoptions	sunxi_dwhdmi	"CPPFLAGS.sunxi_dwhdmi"+="${CPPFLAGS.drmkms}"
370
371# Allwinner HDMI TX PHY
372device	sunxihdmiphy: drmkms
373attach	sunxihdmiphy at fdt with sunxi_hdmiphy
374file	arch/arm/sunxi/sunxi_hdmiphy.c		sunxi_hdmiphy | sunxi_dwhdmi
375
376# Allwinner Crypto Engine
377device	sun8icrypto
378attach	sun8icrypto at fdt with sun8i_crypto
379file	arch/arm/sunxi/sun8i_crypto.c		sun8i_crypto
380
381# SOC parameters
382defflag	opt_soc.h			SOC_SUNXI
383defflag	opt_soc.h			SOC_SUNXI_MC
384defflag	opt_soc.h			SOC_SUN4I: SOC_SUNXI
385defflag	opt_soc.h			SOC_SUN4I_A10: SOC_SUN4I
386defflag	opt_soc.h			SOC_SUN5I: SOC_SUNXI
387defflag	opt_soc.h			SOC_SUN5I_A13: SOC_SUN5I
388defflag	opt_soc.h			SOC_SUN6I: SOC_SUNXI
389defflag	opt_soc.h			SOC_SUN6I_A31: SOC_SUN6I
390defflag	opt_soc.h			SOC_SUN7I: SOC_SUNXI
391defflag	opt_soc.h			SOC_SUN7I_A20: SOC_SUN7I
392defflag	opt_soc.h			SOC_SUN8I: SOC_SUNXI
393defflag	opt_soc.h			SOC_SUN8I_A83T: SOC_SUN8I, SOC_SUNXI_MC
394defflag	opt_soc.h			SOC_SUN8I_H3: SOC_SUN8I
395defflag	opt_soc.h			SOC_SUN8I_V3S: SOC_SUN8I
396defflag	opt_soc.h			SOC_SUN9I: SOC_SUNXI
397defflag	opt_soc.h			SOC_SUN9I_A80: SOC_SUN9I, SOC_SUNXI_MC
398defflag	opt_soc.h			SOC_SUN50I: SOC_SUNXI
399defflag	opt_soc.h			SOC_SUN50I_A64: SOC_SUN50I
400defflag	opt_soc.h			SOC_SUN50I_H5: SOC_SUN50I, SOC_SUN8I_H3
401defflag	opt_soc.h			SOC_SUN50I_H6: SOC_SUN50I
402