head 1.9; access; symbols netbsd-11-0-RC3:1.8 netbsd-11-0-RC2:1.8 netbsd-11-0-RC1:1.8 perseant-exfatfs-base-20250801:1.8 netbsd-11:1.8.0.12 netbsd-11-base:1.8 netbsd-10-1-RELEASE:1.8 perseant-exfatfs-base-20240630:1.8 perseant-exfatfs:1.8.0.10 perseant-exfatfs-base:1.8 netbsd-10-0-RELEASE:1.8 netbsd-10-0-RC6:1.8 netbsd-10-0-RC5:1.8 netbsd-10-0-RC4:1.8 netbsd-10-0-RC3:1.8 netbsd-10-0-RC2:1.8 thorpej-ifq:1.8.0.8 thorpej-ifq-base:1.8 thorpej-altq-separation:1.8.0.6 thorpej-altq-separation-base:1.8 netbsd-10-0-RC1:1.8 netbsd-10:1.8.0.4 netbsd-10-base:1.8 bouyer-sunxi-drm:1.8.0.2 bouyer-sunxi-drm-base:1.8; locks; strict; comment @# @; 1.9 date 2025.09.06.15.44.02; author thorpej; state Exp; branches; next 1.8; commitid 9V4ybx31NXy5wF9G; 1.8 date 2022.05.10.08.09.57; author skrll; state Exp; branches; next 1.7; commitid B8CW1WcHt0iP2uDD; 1.7 date 2022.05.10.08.05.32; author skrll; state Exp; branches; next 1.6; commitid yxrmLipd1f0b2uDD; 1.6 date 2022.05.07.08.20.04; author skrll; state Exp; branches; next 1.5; commitid GWAZfDc5QN67d6DD; 1.5 date 2022.04.27.08.06.20; author skrll; state Exp; branches; next 1.4; commitid NpL4Akv4hA8RrOBD; 1.4 date 2022.04.27.07.59.18; author skrll; state Exp; branches; next 1.3; commitid PVpbpa5S260TpOBD; 1.3 date 2022.04.27.07.55.42; author skrll; state Exp; branches; next 1.2; commitid 8w13xHdYjXuEoOBD; 1.2 date 2022.01.03.08.44.10; author skrll; state Exp; branches; next 1.1; commitid izOvgqEpB7LFkanD; 1.1 date 2021.08.30.23.26.26; author jmcneill; state Exp; branches; next ; commitid z9BcpRSYCYuRf37D; desc @@ 1.9 log @Step towards modularizing the Flattened Device Tree code. Define attributes for each of the specific device bindings: clock, dai, dma, gpio, i2c, iommu, mbox, mmc_pwrseq, phy, power, power domain, pwm, regulator, reset controller, spi, system controller, pin controller. Include these support files only if either a provider or consumer with one of these attributes is present in the kernel config. Add the necessary attributes to the device / attach declarations for each provider and consumer. There are some bindings that are consumed by generic code (iommu, pinctrl, power, power domain). Provide weak stubs for these routines to handle situations where there is no provider. No actual code changed; NFCI. @ text @# $NetBSD: files.apple,v 1.8 2022/05/10 08:09:57 skrll Exp $ # # Configuration info for Apple Silicon SoCs # # # IOMMU device appledart: fdt_iommu attach appledart at fdt with apple_dart file arch/arm/apple/apple_dart.c apple_dart # I2C controller device appleiic: fdt_clock, fdt_i2c, i2cbus attach appleiic at fdt with apple_iic file arch/arm/apple/apple_iic.c apple_iic # Interrupt controller device appleintc: pic, pic_splfuncs attach appleintc at fdt with apple_intc file arch/arm/apple/apple_intc.c apple_intc # Mailbox device applembox: fdt_mbox attach applembox at fdt with apple_mbox file arch/arm/apple/apple_mbox.c apple_mbox # NVME device applenvme: nvme attach nvme at fdt with apple_nvme file arch/arm/apple/apple_nvme.c apple_nvme # PCIe controller device applepcie: fdt_gpio, fdt_iommu, pcibus, pcihost_fdt attach applepcie at fdt with apple_pcie file arch/arm/apple/apple_pcie.c apple_pcie # GPIO controller # : gpiobus? device applepinctrl: fdt_gpio, fdt_pinctrl attach applepinctrl at fdt with apple_pinctrl file arch/arm/apple/apple_pinctrl.c apple_pinctrl # Power domain controller device applepmgr: fdt_powerdomain attach applepmgr at fdt with apple_pmgr file arch/arm/apple/apple_pmgr.c apple_pmgr # SMC attach applesmc at fdt with apple_rtkitsmc: fdt_gpio file arch/arm/apple/apple_smc.c apple_rtkitsmc # Watchdog timer device applewdog: fdt_power, sysmon_wdog attach applewdog at fdt with apple_wdog file arch/arm/apple/apple_wdog.c apple_wdog # SOC parameters defflag opt_soc.h SOC_APPLE file arch/arm/apple/apple_platform.c soc_apple file arch/arm/apple/apple_rtkit.c soc_apple & apple_mbox @ 1.8 log @Add a driver for the Apple RTKit based System Management Controller found on M1 SoCs. From OpenBSD. @ text @d1 1 a1 1 # $NetBSD: files.apple,v 1.7 2022/05/10 08:05:32 skrll Exp $ d8 1 a8 1 device appledart d13 1 a13 1 device appleiic: i2cbus d23 1 a23 1 device applembox d33 1 a33 1 device applepcie: pcibus, pcihost_fdt d39 1 a39 1 device applepinctrl d44 1 a44 1 device applepmgr d49 1 a49 1 attach applesmc at fdt with apple_rtkitsmc d53 1 a53 1 device applewdog: sysmon_wdog @ 1.7 log @Add a driver for the Apple M1 I2C controller. From OpenBSD. @ text @d1 1 a1 1 # $NetBSD: files.apple,v 1.6 2022/05/07 08:20:04 skrll Exp $ d48 4 @ 1.6 log @Add support for Apple silicon NVME. Ported from OpenBSD. @ text @d1 1 a1 1 # $NetBSD: files.apple,v 1.5 2022/04/27 08:06:20 skrll Exp $ d12 5 @ 1.5 log @Add support for the mailbox that provides a communications channel with additional cores integrated in Apple Silicon. Also, add an implementation for the protocol to communicate with coprocessors running firmware based Apple's RTKit OS. From OpenBSD. @ text @d1 1 a1 1 # $NetBSD: files.apple,v 1.4 2022/04/27 07:59:18 skrll Exp $ d22 5 @ 1.4 log @Add a driver for the Apple GPIO controller found in Apple silicon. Derived from the OpenBSD driver. @ text @d1 1 a1 1 # $NetBSD: files.apple,v 1.3 2022/04/27 07:55:42 skrll Exp $ a6 2 file arch/arm/apple/apple_platform.c soc_apple d17 5 d45 3 @ 1.3 log @Add support for the power domain controller found in Apple silicon machines. @ text @d1 1 a1 1 # $NetBSD: files.apple,v 1.2 2022/01/03 08:44:10 skrll Exp $ d24 6 @ 1.2 log @sort @ text @d1 1 a1 1 # $NetBSD: files.apple,v 1.1 2021/08/30 23:26:26 jmcneill Exp $ d24 5 @ 1.1 log @Add initial support for Apple M1. Currently supported devices: - Interrupt controller - IOMMU - PCIe (USB3 and ethernet) - Reboot via watchdog - Framebuffer console @ text @d1 1 a1 1 # $NetBSD$ d9 5 a18 5 # Watchdog timer device applewdog: sysmon_wdog attach applewdog at fdt with apple_wdog file arch/arm/apple/apple_wdog.c apple_wdog d24 4 a27 4 # IOMMU device appledart attach appledart at fdt with apple_dart file arch/arm/apple/apple_dart.c apple_dart @