Commit 5722a6ce authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull spi updates from Mark Brown:
 "The bulk of the changes in this release are driver work, as well as
  new device support we have some important work on performance over
  several drivers, and big overhauls for maintainability on a couple
  too. Highlights include:

   - Big cleanups of the sh-msiof driver from Geert Uytterhoeven, and of
     the NXP FSPI driver from Haibo Chen

   - Performance improvements for the AXI SPI engine

   - Support for writes to memory mapped flashes on Renesas devices

   - Integrated DMA support for Tegra210 QSPI, used by the Tegra234

   - DMA support for Amlogic SPI controllers

   - Support for AMD HID2, Qualcomm IPQ5018, Renesas RZ/G3E, Rockchip
     RK3528 and Samsung Exynos Autov920

  An update to fix some issues with the Atmel QSPI driver runtime PM
  pulled in a new API from the PM core, and the Renesas memory mapped
  write changes pull in some code that's shared in drivers/memory"

* tag 'spi-v6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (90 commits)
  spi: spi-qpic-snand: return early on error from qcom_spi_io_op()
  spi: loopback-test: fix up const pointer issue in rx_ranges_cmp()
  spi: gpio: fix const issue in spi_to_spi_gpio()
  spi: spi-qpic-snand: remove superfluous parameters of qcom_spi_check_error()
  dt-bindings: spi: samsung: add exynosautov920-spi compatible
  spi: spi-qpic-snand: reuse qcom_spi_check_raw_flash_errors()
  spi: dt-bindings: Add rk3528-spi compatible
  spi: spi_amd: Update Kconfig dependencies
  spi: spi_amd: Add HIDDMA basic write support
  spi: spi_amd: Remove read{q,b} usage on DMA buffer
  spi: sh-msiof: Move register definitions to <linux/spi/sh_msiof.h>
  spi: sh-msiof: Document frame start sync pulse mode
  spi: sh-msiof: Double maximum DMA transfer size using two groups
  spi: sh-msiof: Simplify BRG's Division Ratio
  spi: sh-msiof: Increase TX FIFO size for R-Car V4H/V4M
  spi: sh-msiof: Correct RX FIFO size for R-Car Gen3
  spi: sh-msiof: Correct RX FIFO size for R-Car Gen2
  spi: sh-msiof: Add core support for dual-group transfers
  spi: sh-msiof: Correct SIMDR2_GRPMASK
  spi: sh-msiof: SIFCTR bitfield conversion
  ...
parents 350d9ab7 b00d6864
Loading
Loading
Loading
Loading
+135 −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/memory-controllers/renesas,rzg3e-xspi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas Expanded Serial Peripheral Interface (xSPI)

maintainers:
  - Biju Das <biju.das.jz@bp.renesas.com>

description: |
  Renesas xSPI allows a SPI flash connected to the SoC to be accessed via
  the memory-mapping or the manual command mode.

  The flash chip itself should be represented by a subnode of the XSPI node.
  The flash interface is selected based on the "compatible" property of this
  subnode:
  -  "jedec,spi-nor";

allOf:
  - $ref: /schemas/spi/spi-controller.yaml#

properties:
  compatible:
    const: renesas,r9a09g047-xspi  # RZ/G3E

  reg:
    items:
      - description: xSPI registers
      - description: direct mapping area

  reg-names:
    items:
      - const: regs
      - const: dirmap

  interrupts:
    items:
      - description: Interrupt pulse signal by factors excluding errors
      - description: Interrupt pulse signal by error factors

  interrupt-names:
    items:
      - const: pulse
      - const: err_pulse

  clocks:
    items:
      - description: AHB clock
      - description: AXI clock
      - description: SPI clock
      - description: Double speed SPI clock

  clock-names:
    items:
      - const: ahb
      - const: axi
      - const: spi
      - const: spix2

  power-domains:
    maxItems: 1

  resets:
    items:
      - description: Hardware reset
      - description: AXI reset

  reset-names:
    items:
      - const: hresetn
      - const: aresetn

  renesas,xspi-cs-addr-sys:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: |
      Phandle to the system controller (sys) that allows to configure
      xSPI CS0 and CS1 addresses.

patternProperties:
  "flash@[0-9a-f]+$":
    type: object
    additionalProperties: true

    properties:
      compatible:
        contains:
          const: jedec,spi-nor

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - interrupt-names
  - clocks
  - clock-names
  - power-domains
  - resets
  - reset-names
  - '#address-cells'
  - '#size-cells'

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/renesas,r9a09g047-cpg.h>

    spi@11030000 {
        compatible = "renesas,r9a09g047-xspi";
        reg = <0x11030000 0x10000>, <0x20000000 0x10000000>;
        reg-names = "regs", "dirmap";
        interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
                     <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>;
        interrupt-names = "pulse", "err_pulse";
        clocks = <&cpg CPG_MOD 0x9f>, <&cpg CPG_MOD 0xa0>,
                 <&cpg CPG_CORE 9>, <&cpg CPG_MOD 0xa1>;
        clock-names = "ahb", "axi", "spi", "spix2";
        power-domains = <&cpg>;
        resets = <&cpg 0xa3>, <&cpg 0xa4>;
        reset-names = "hresetn", "aresetn";
        #address-cells = <1>;
        #size-cells = <0>;

        flash@0 {
          compatible = "jedec,spi-nor";
          reg = <0>;
          spi-max-frequency = <40000000>;
          spi-tx-bus-width = <1>;
          spi-rx-bus-width = <1>;
        };
    };
+0 −5
Original line number Diff line number Diff line
@@ -59,8 +59,3 @@ examples:
        reg = <0>;
      };
    };

    shm: syscon@c8001000 {
      compatible = "nuvoton,wpcm450-shm", "syscon";
      reg = <0xc8001000 0x1000>;
    };
+15 −3
Original line number Diff line number Diff line
@@ -10,9 +10,6 @@ maintainers:
  - Thierry Reding <thierry.reding@gmail.com>
  - Jonathan Hunter <jonathanh@nvidia.com>

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

properties:
  compatible:
    enum:
@@ -47,6 +44,9 @@ properties:
      - const: rx
      - const: tx

  iommus:
    maxItems: 1

patternProperties:
  "@[0-9a-f]+$":
    type: object
@@ -69,6 +69,18 @@ required:

unevaluatedProperties: false

allOf:
  - $ref: spi-controller.yaml#
  - if:
      properties:
        compatible:
          not:
            contains:
              const: nvidia,tegra234-qspi
    then:
      properties:
        iommus: false

examples:
  - |
    #include <dt-bindings/clock/tegra210-car.h>
+6 −2
Original line number Diff line number Diff line
@@ -21,8 +21,12 @@ allOf:

properties:
  compatible:
    enum:
      - qcom,ipq9574-snand
    oneOf:
      - items:
          - enum:
              - qcom,ipq5018-snand
          - const: qcom,ipq9574-snand
      - const: qcom,ipq9574-snand

  reg:
    maxItems: 1
+1 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ properties:
      - items:
          - enum:
              - samsung,exynos8895-spi
              - samsung,exynosautov920-spi
          - const: samsung,exynos850-spi
      - const: samsung,exynos7-spi
        deprecated: true
Loading