Unverified Commit 95ef7152 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'ixp4xx-arm-soc-v5.14' of...

Merge tag 'ixp4xx-arm-soc-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/soc

This is a major chunk of IXP4xx modernization:

- Fist we move some registers around to make room for
  the predetermined PCI I/O space.

- Then we add some Kconfig options to make it possible
  to use the old PCI driver in parallell with the new
  shiny one.

- Then we add the new PCI driver and some bindings for
  it.

- On top of this we add an (ages old) patch from Arnd
  that centralize the CPU/SoC detection in drivers/soc
  and make the header a standard Linux header to avoid
  the <mach/*> business in drivers.

- Then we split out and modernize some platform data
  headers for pata, and hwrandom, and top it up with
  DT bindings and support for hwrandom.

* tag 'ixp4xx-arm-soc-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
  ixp4xx: fix spelling mistake in Kconfig "Devce" -> "Device"
  hw_random: ixp4xx: Add OF support
  hw_random: ixp4xx: Add DT bindings
  hw_random: ixp4xx: Turn into a module
  hw_random: ixp4xx: Use SPDX license tag
  hw_random: ixp4xx: enable compile-testing
  pata: ixp4xx: split platform data to its own header
  soc: ixp4xx: move cpu detection to linux/soc/ixp4xx/cpu.h
  PCI: ixp4xx: Add a new driver for IXP4xx
  PCI: ixp4xx: Add device tree bindings for IXP4xx
  ARM/ixp4xx: Make NEED_MACH_IO_H optional
  ARM/ixp4xx: Move the virtual IObases

Link: https://lore.kernel.org/r/CACRpkdbw6HSpp7k6q1FYGmtafLmdAu8bFnpHQOdfBDYYsdLbkw@mail.gmail.com


Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 6b4670af 0da518da
Loading
Loading
Loading
Loading
+100 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/intel,ixp4xx-pci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Intel IXP4xx PCI controller

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

description: PCI host controller found in the Intel IXP4xx SoC series.

allOf:
  - $ref: /schemas/pci/pci-bus.yaml#

properties:
  compatible:
    items:
      - enum:
          - intel,ixp42x-pci
          - intel,ixp43x-pci
    description: The two supported variants are ixp42x and ixp43x,
      though more variants may exist.

  reg:
    items:
      - description: IXP4xx-specific registers

  interrupts:
    items:
      - description: Main PCI interrupt
      - description: PCI DMA interrupt 1
      - description: PCI DMA interrupt 2

  ranges:
    maxItems: 2
    description: Typically one memory range of 64MB and one IO
      space range of 64KB.

  dma-ranges:
    maxItems: 1
    description: The DMA range tells the PCI host which addresses
      the RAM is at. It can map only 64MB so if the RAM is bigger
      than 64MB the DMA access has to be restricted to these
      addresses.

  "#interrupt-cells": true

  interrupt-map: true

  interrupt-map-mask:
    items:
      - const: 0xf800
      - const: 0
      - const: 0
      - const: 7

required:
  - compatible
  - reg
  - dma-ranges
  - "#interrupt-cells"
  - interrupt-map
  - interrupt-map-mask

unevaluatedProperties: false

examples:
  - |
    pci@c0000000 {
      compatible = "intel,ixp43x-pci";
      reg = <0xc0000000 0x1000>;
      #address-cells = <3>;
      #size-cells = <2>;
      device_type = "pci";
      bus-range = <0x00 0xff>;

      ranges =
        <0x02000000 0 0x48000000 0x48000000 0 0x04000000>,
        <0x01000000 0 0x00000000 0x4c000000 0 0x00010000>;
      dma-ranges =
        <0x02000000 0 0x00000000 0x00000000 0 0x04000000>;

      #interrupt-cells = <1>;
      interrupt-map-mask = <0xf800 0 0 7>;
      interrupt-map =
        <0x0800 0 0 1 &gpio0 11 3>, /* INT A on slot 1 is irq 11 */
        <0x0800 0 0 2 &gpio0 10 3>, /* INT B on slot 1 is irq 10 */
        <0x0800 0 0 3 &gpio0 9  3>, /* INT C on slot 1 is irq 9 */
        <0x0800 0 0 4 &gpio0 8  3>, /* INT D on slot 1 is irq 8 */
        <0x1000 0 0 1 &gpio0 10 3>, /* INT A on slot 2 is irq 10 */
        <0x1000 0 0 2 &gpio0 9  3>, /* INT B on slot 2 is irq 9 */
        <0x1000 0 0 3 &gpio0 8  3>, /* INT C on slot 2 is irq 8 */
        <0x1000 0 0 4 &gpio0 11 3>, /* INT D on slot 2 is irq 11 */
        <0x1800 0 0 1 &gpio0 9  3>, /* INT A on slot 3 is irq 9 */
        <0x1800 0 0 2 &gpio0 8  3>, /* INT B on slot 3 is irq 8 */
        <0x1800 0 0 3 &gpio0 11 3>, /* INT C on slot 3 is irq 11 */
        <0x1800 0 0 4 &gpio0 10 3>; /* INT D on slot 3 is irq 10 */
    };
+36 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/rng/intel,ixp46x-rng.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Intel IXP46x RNG bindings

description: |
  The Intel IXP46x has a random number generator at a fixed physical
  location in memory. Each read is guaranteed to provide a unique
  32 bit random number.

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

properties:
  compatible:
    const: intel,ixp46x-rng

  reg:
    maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    rng@70002100 {
      compatible = "intel,ixp46x-rng";
      reg = <0x70002100 4>;
    };
+7 −0
Original line number Diff line number Diff line
@@ -9252,6 +9252,7 @@ F: include/linux/soc/ixp4xx/qmgr.h
INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT
M:	Deepak Saxena <dsaxena@plexity.net>
S:	Maintained
F:	Documentation/devicetree/bindings/display/intel,ixp46x-rng.yaml
F:	drivers/char/hw_random/ixp4xx-rng.c
INTEL KEEM BAY DRM DRIVER
@@ -14015,6 +14016,12 @@ S: Maintained
F:	Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml
F:	drivers/pci/controller/dwc/pcie-fu740.c
PCI DRIVER FOR INTEL IXP4XX
M:	Linus Walleij <linus.walleij@linaro.org>
S:	Maintained
F:	Documentation/devicetree/bindings/pci/intel,ixp4xx-pci.yaml
F:	drivers/pci/controller/pci-ixp4xx.c
PCI DRIVER FOR INTEL VOLUME MANAGEMENT DEVICE (VMD)
M:	Jonathan Derrick <jonathan.derrick@intel.com>
L:	linux-pci@vger.kernel.org
+2 −1
Original line number Diff line number Diff line
@@ -398,7 +398,8 @@ config ARCH_IXP4XX
	select HAVE_PCI
	select IXP4XX_IRQ
	select IXP4XX_TIMER
	select NEED_MACH_IO_H
	# With the new PCI driver this is not needed
	select NEED_MACH_IO_H if PCI_IXP4XX_LEGACY
	select USB_EHCI_BIG_ENDIAN_DESC
	select USB_EHCI_BIG_ENDIAN_MMIO
	help
+2 −2
Original line number Diff line number Diff line
@@ -1813,8 +1813,8 @@ config DEBUG_UART_VIRT
	default 0xfedc0000 if DEBUG_EP93XX
	default 0xfee003f8 if DEBUG_FOOTBRIDGE_COM1
	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
	default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
	default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
	default 0xfec00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
	default 0xfec00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
	default 0xfef36000 if DEBUG_HIGHBANK_UART
	default 0xfefb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
	default 0xfefb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
Loading