Merge tag 'arm-apple-m1-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 26 Apr 2021 19:30:36 +0000 (12:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 26 Apr 2021 19:30:36 +0000 (12:30 -0700)
Pull ARM Apple M1 platform support from Arnd Bergmann:
 "The Apple M1 is the processor used it all current generation Apple
  Macintosh computers. Support for this platform so far is rudimentary,
  but it boots and can use framebuffer and serial console over a special
  USB cable.

  Support for several essential on-chip devices (USB, PCIe, IOMMU, NVMe)
  is work in progress but was not ready in time.

  A very detailed description of what works is in the commit message of
  commit 1bb2fd3880d4 ("Merge tag 'm1-soc-bringup-v5' [..]") and on the
  AsahiLinux wiki"

Link: https://lore.kernel.org/linux-arm-kernel/bdb18e9f-fcd7-1e31-2224-19c0e5090706@marcan.st/
* tag 'arm-apple-m1-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  asm-generic/io.h: Unbork ioremap_np() declaration
  arm64: apple: Add initial Apple Mac mini (M1, 2020) devicetree
  dt-bindings: display: Add apple,simple-framebuffer
  arm64: Kconfig: Introduce CONFIG_ARCH_APPLE
  irqchip/apple-aic: Add support for the Apple Interrupt Controller
  dt-bindings: interrupt-controller: Add DT bindings for apple-aic
  arm64: Move ICH_ sysreg bits from arm-gic-v3.h to sysreg.h
  of/address: Add infrastructure to declare MMIO as non-posted
  asm-generic/io.h: implement pci_remap_cfgspace using ioremap_np
  arm64: Implement ioremap_np() to map MMIO as nGnRnE
  docs: driver-api: device-io: Document ioremap() variants & access funcs
  docs: driver-api: device-io: Document I/O access functions
  asm-generic/io.h:  Add a non-posted variant of ioremap()
  arm64: arch_timer: Implement support for interrupt-names
  dt-bindings: timer: arm,arch_timer: Add interrupt-names support
  arm64: cputype: Add CPU implementor & types for the Apple M1 cores
  dt-bindings: arm: cpus: Add apple,firestorm & icestorm compatibles
  dt-bindings: arm: apple: Add bindings for Apple ARM platforms
  dt-bindings: vendor-prefixes: Add apple prefix

1  2 
Documentation/devicetree/bindings/vendor-prefixes.yaml
Documentation/driver-api/driver-model/devres.rst
MAINTAINERS
arch/arm64/Kconfig.platforms
arch/arm64/configs/defconfig
arch/arm64/include/asm/sysreg.h
drivers/clocksource/arm_arch_timer.c
drivers/irqchip/Kconfig
drivers/irqchip/Makefile
include/linux/cpuhotplug.h

diff --cc MAINTAINERS
Simple merge
Simple merge
index 99e8a8fb5b4ec61b139d7f28b7b8e3f8cb92d321,54fb257e55f75d53b2ad24ad688d0532b4099b10..08c6f769df9aeb1f39e04524e05be51ba16f8f99
@@@ -29,9 -29,9 +29,10 @@@ CONFIG_KALLSYMS_ALL=
  CONFIG_PROFILING=y
  CONFIG_ARCH_ACTIONS=y
  CONFIG_ARCH_AGILEX=y
 +CONFIG_ARCH_N5X=y
  CONFIG_ARCH_SUNXI=y
  CONFIG_ARCH_ALPINE=y
+ CONFIG_ARCH_APPLE=y
  CONFIG_ARCH_BCM2835=y
  CONFIG_ARCH_BCM4908=y
  CONFIG_ARCH_BCM_IPROC=y
Simple merge
index 1b885964fb34d2e8c4541dbb64ab83e98ad2db97,932f95691e27e53c79c77bbb55ecc700f1758991..4fb1f4da27ec0997bd3cdfc3474c696952aec819
@@@ -60,16 -60,23 +60,24 @@@ struct arch_timer 
  
  #define to_arch_timer(e) container_of(e, struct arch_timer, evt)
  
 -static u32 arch_timer_rate;
 -static int arch_timer_ppi[ARCH_TIMER_MAX_TIMER_PPI];
 +static u32 arch_timer_rate __ro_after_init;
 +u32 arch_timer_rate1 __ro_after_init;
 +static int arch_timer_ppi[ARCH_TIMER_MAX_TIMER_PPI] __ro_after_init;
  
+ static const char *arch_timer_ppi_names[ARCH_TIMER_MAX_TIMER_PPI] = {
+       [ARCH_TIMER_PHYS_SECURE_PPI]    = "sec-phys",
+       [ARCH_TIMER_PHYS_NONSECURE_PPI] = "phys",
+       [ARCH_TIMER_VIRT_PPI]           = "virt",
+       [ARCH_TIMER_HYP_PPI]            = "hyp-phys",
+       [ARCH_TIMER_HYP_VIRT_PPI]       = "hyp-virt",
+ };
  static struct clock_event_device __percpu *arch_timer_evt;
  
 -static enum arch_timer_ppi_nr arch_timer_uses_ppi = ARCH_TIMER_VIRT_PPI;
 -static bool arch_timer_c3stop;
 -static bool arch_timer_mem_use_virtual;
 -static bool arch_counter_suspend_stop;
 +static enum arch_timer_ppi_nr arch_timer_uses_ppi __ro_after_init = ARCH_TIMER_VIRT_PPI;
 +static bool arch_timer_c3stop __ro_after_init;
 +static bool arch_timer_mem_use_virtual __ro_after_init;
 +static bool arch_counter_suspend_stop __ro_after_init;
  #ifdef CONFIG_GENERIC_GETTIMEOFDAY
  static enum vdso_clock_mode vdso_default = VDSO_CLOCKMODE_ARCHTIMER;
  #else
index c8f57e3e058dcd35eedad723296d1e2d701ad9c2,d3a14f304ec80caae398c2054c8fb9cfa2ef1703..b90e825df7e1470f125fab3760b025473b01e9b9
@@@ -582,15 -577,12 +582,23 @@@ config MST_IR
        help
          Support MStar Interrupt Controller.
  
 +config WPCM450_AIC
 +      bool "Nuvoton WPCM450 Advanced Interrupt Controller"
 +      depends on ARCH_WPCM450
 +      help
 +        Support for the interrupt controller in the Nuvoton WPCM450 BMC SoC.
 +
 +config IRQ_IDT3243X
 +      bool
 +      select GENERIC_IRQ_CHIP
 +      select IRQ_DOMAIN
 +
+ config APPLE_AIC
+       bool "Apple Interrupt Controller (AIC)"
+       depends on ARM64
+       default ARCH_APPLE
+       help
+         Support for the Apple Interrupt Controller found on Apple Silicon SoCs,
+         such as the M1.
  endmenu
index 18573602a939b0861586f4129806f644a158bf34,eb6a515f0f649504f8e9e62481ae732b045c4e32..f88cbf36a9d28d5f836d71351dab8676690fc89a
@@@ -113,5 -113,4 +113,6 @@@ obj-$(CONFIG_LOONGSON_PCH_MSI)             += irq-
  obj-$(CONFIG_MST_IRQ)                 += irq-mst-intc.o
  obj-$(CONFIG_SL28CPLD_INTC)           += irq-sl28cpld.o
  obj-$(CONFIG_MACH_REALTEK_RTL)                += irq-realtek-rtl.o
 +obj-$(CONFIG_WPCM450_AIC)             += irq-wpcm450-aic.o
 +obj-$(CONFIG_IRQ_IDT3243X)            += irq-idt3243x.o
+ obj-$(CONFIG_APPLE_AIC)                       += irq-apple-aic.o
Simple merge