Commit 075dbe9f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'soc-ep93xx-dt-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull SoC update from Arnd Bergmann:
 "Convert ep93xx to devicetree

  This concludes a long journey towards replacing the old board files
  with devictree description on the Cirrus Logic EP93xx platform.

  Nikita Shubin has been working on this for a long time, for details
  see the last post on

    https://lore.kernel.org/lkml/20240909-ep93xx-v12-0-e86ab2423d4b@maquefel.me/"

* tag 'soc-ep93xx-dt-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (47 commits)
  dt-bindings: gpio: ep9301: Add missing "#interrupt-cells" to examples
  MAINTAINERS: Update EP93XX ARM ARCHITECTURE maintainer
  soc: ep93xx: drop reference to removed EP93XX_SOC_COMMON config
  net: cirrus: use u8 for addr to calm down sparse
  dmaengine: cirrus: use snprintf() to calm down gcc 13.3.0
  dmaengine: ep93xx: Fix a NULL vs IS_ERR() check in probe()
  pinctrl: ep93xx: Fix raster pins typo
  spi: ep93xx: update kerneldoc comments for ep93xx_spi
  clk: ep93xx: Fix off by one in ep93xx_div_recalc_rate()
  clk: ep93xx: add module license
  dmaengine: cirrus: remove platform code
  ASoC: cirrus: edb93xx: Delete driver
  ARM: ep93xx: soc: drop defines
  ARM: ep93xx: delete all boardfiles
  ata: pata_ep93xx: remove legacy pinctrl use
  pwm: ep93xx: drop legacy pinctrl
  ARM: ep93xx: DT for the Cirrus ep93xx SoC platforms
  ARM: dts: ep93xx: Add EDB9302 DT
  ARM: dts: ep93xx: add ts7250 board
  ARM: dts: add Cirrus EP93XX SoC .dtsi
  ...
parents 348325d6 e3eb39e6
Loading
Loading
Loading
Loading
+38 −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/arm/cirrus/cirrus,ep9301.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic EP93xx platforms

description:
  The EP93xx SoC is a ARMv4T-based with 200 MHz ARM9 CPU.

maintainers:
  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
  - Nikita Shubin <nikita.shubin@maquefel.me>

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:
      - description: The TS-7250 is a compact, full-featured Single Board
          Computer (SBC) based upon the Cirrus EP9302 ARM9 CPU
        items:
          - const: technologic,ts7250
          - const: cirrus,ep9301

      - description: The Liebherr BK3 is a derivate from ts7250 board
        items:
          - const: liebherr,bk3
          - const: cirrus,ep9301

      - description: EDB302 is an evaluation board by Cirrus Logic,
          based on a Cirrus Logic EP9302 CPU
        items:
          - const: cirrus,edb9302
          - const: cirrus,ep9301

additionalProperties: true
+42 −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/ata/cirrus,ep9312-pata.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic EP9312 PATA controller

maintainers:
  - Damien Le Moal <dlemoal@kernel.org>

properties:
  compatible:
    oneOf:
      - const: cirrus,ep9312-pata
      - items:
          - const: cirrus,ep9315-pata
          - const: cirrus,ep9312-pata

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    ide@800a0000 {
        compatible = "cirrus,ep9312-pata";
        reg = <0x800a0000 0x38>;
        interrupt-parent = <&vic1>;
        interrupts = <8>;
        pinctrl-names = "default";
        pinctrl-0 = <&ide_default_pins>;
    };
+84 −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/dma/cirrus,ep9301-dma-m2m.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic ep93xx SoC DMA controller

maintainers:
  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
  - Nikita Shubin <nikita.shubin@maquefel.me>

allOf:
  - $ref: dma-controller.yaml#

properties:
  compatible:
    oneOf:
      - const: cirrus,ep9301-dma-m2m
      - items:
          - enum:
              - cirrus,ep9302-dma-m2m
              - cirrus,ep9307-dma-m2m
              - cirrus,ep9312-dma-m2m
              - cirrus,ep9315-dma-m2m
          - const: cirrus,ep9301-dma-m2m

  reg:
    items:
      - description: m2m0 channel registers
      - description: m2m1 channel registers

  clocks:
    items:
      - description: m2m0 channel gate clock
      - description: m2m1 channel gate clock

  clock-names:
    items:
      - const: m2m0
      - const: m2m1

  interrupts:
    items:
      - description: m2m0 channel interrupt
      - description: m2m1 channel interrupt

  '#dma-cells':
    const: 2
    description: |
      The first cell is the unique device channel number as indicated by this
      table for ep93xx:

      10: SPI controller
      11: IDE controller

      The second cell is the DMA direction line number:

      1: Memory to device
      2: Device to memory

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
    dma-controller@80000100 {
        compatible = "cirrus,ep9301-dma-m2m";
        reg = <0x80000100 0x0040>,
              <0x80000140 0x0040>;
        clocks = <&syscon EP93XX_CLK_M2M0>,
                 <&syscon EP93XX_CLK_M2M1>;
        clock-names = "m2m0", "m2m1";
        interrupt-parent = <&vic0>;
        interrupts = <17>, <18>;
        #dma-cells = <2>;
    };
+144 −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/dma/cirrus,ep9301-dma-m2p.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic ep93xx SoC M2P DMA controller

maintainers:
  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
  - Nikita Shubin <nikita.shubin@maquefel.me>

allOf:
  - $ref: dma-controller.yaml#

properties:
  compatible:
    oneOf:
      - const: cirrus,ep9301-dma-m2p
      - items:
          - enum:
              - cirrus,ep9302-dma-m2p
              - cirrus,ep9307-dma-m2p
              - cirrus,ep9312-dma-m2p
              - cirrus,ep9315-dma-m2p
          - const: cirrus,ep9301-dma-m2p

  reg:
    items:
      - description: m2p0 channel registers
      - description: m2p1 channel registers
      - description: m2p2 channel registers
      - description: m2p3 channel registers
      - description: m2p4 channel registers
      - description: m2p5 channel registers
      - description: m2p6 channel registers
      - description: m2p7 channel registers
      - description: m2p8 channel registers
      - description: m2p9 channel registers

  clocks:
    items:
      - description: m2p0 channel gate clock
      - description: m2p1 channel gate clock
      - description: m2p2 channel gate clock
      - description: m2p3 channel gate clock
      - description: m2p4 channel gate clock
      - description: m2p5 channel gate clock
      - description: m2p6 channel gate clock
      - description: m2p7 channel gate clock
      - description: m2p8 channel gate clock
      - description: m2p9 channel gate clock

  clock-names:
    items:
      - const: m2p0
      - const: m2p1
      - const: m2p2
      - const: m2p3
      - const: m2p4
      - const: m2p5
      - const: m2p6
      - const: m2p7
      - const: m2p8
      - const: m2p9

  interrupts:
    items:
      - description: m2p0 channel interrupt
      - description: m2p1 channel interrupt
      - description: m2p2 channel interrupt
      - description: m2p3 channel interrupt
      - description: m2p4 channel interrupt
      - description: m2p5 channel interrupt
      - description: m2p6 channel interrupt
      - description: m2p7 channel interrupt
      - description: m2p8 channel interrupt
      - description: m2p9 channel interrupt

  '#dma-cells':
    const: 2
    description: |
      The first cell is the unique device channel number as indicated by this
      table for ep93xx:

      0: I2S channel 1
      1: I2S channel 2 (unused)
      2: AC97 channel 1 (unused)
      3: AC97 channel 2 (unused)
      4: AC97 channel 3 (unused)
      5: I2S channel 3 (unused)
      6: UART1 (unused)
      7: UART2 (unused)
      8: UART3 (unused)
      9: IRDA (unused)

      The second cell is the DMA direction line number:

      1: Memory to device
      2: Device to memory

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
    dma-controller@80000000 {
        compatible = "cirrus,ep9301-dma-m2p";
        reg = <0x80000000 0x0040>,
              <0x80000040 0x0040>,
              <0x80000080 0x0040>,
              <0x800000c0 0x0040>,
              <0x80000240 0x0040>,
              <0x80000200 0x0040>,
              <0x800002c0 0x0040>,
              <0x80000280 0x0040>,
              <0x80000340 0x0040>,
              <0x80000300 0x0040>;
        clocks = <&syscon EP93XX_CLK_M2P0>,
                 <&syscon EP93XX_CLK_M2P1>,
                 <&syscon EP93XX_CLK_M2P2>,
                 <&syscon EP93XX_CLK_M2P3>,
                 <&syscon EP93XX_CLK_M2P4>,
                 <&syscon EP93XX_CLK_M2P5>,
                 <&syscon EP93XX_CLK_M2P6>,
                 <&syscon EP93XX_CLK_M2P7>,
                 <&syscon EP93XX_CLK_M2P8>,
                 <&syscon EP93XX_CLK_M2P9>;
        clock-names = "m2p0", "m2p1",
                      "m2p2", "m2p3",
                      "m2p4", "m2p5",
                      "m2p6", "m2p7",
                      "m2p8", "m2p9";
        interrupt-parent = <&vic0>;
        interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>;
        #dma-cells = <2>;
    };
+6 −3
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ examples:
      gpio-controller;
      #gpio-cells = <2>;
      interrupt-controller;
      #interrupt-cells = <2>;
      interrupt-parent = <&vic1>;
      interrupts = <27>;
    };
@@ -87,6 +88,7 @@ examples:
      gpio-controller;
      #gpio-cells = <2>;
      interrupt-controller;
      #interrupt-cells = <2>;
      interrupt-parent = <&vic1>;
      interrupts = <27>;
    };
@@ -127,6 +129,7 @@ examples:
      gpio-controller;
      #gpio-cells = <2>;
      interrupt-controller;
      #interrupt-cells = <2>;
      interrupts-extended = <&vic0 19>, <&vic0 20>,
                            <&vic0 21>, <&vic0 22>,
                            <&vic1 15>, <&vic1 16>,
Loading