Commit 47b62edc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM SoC drivers from Arnd Bergmann:
 "The SoC driver updates contain changes to improve support for
  additional SoC variants, as well as cleanups an minor bugfixes
  in a number of existing drivers.

  Notable updates this time include:

   - Support for Qualcomm MSM8909 (Snapdragon 210) in various drivers

   - Updates for interconnect drivers on Qualcomm Snapdragon

   - A new driver support for NMI interrupts on Fujitsu A64fx

   - A rework of Broadcom BCMBCA Kconfig dependencies

   - Improved support for BCM2711 (Raspberry Pi 4) power management to
     allow the use of the V3D GPU

   - Cleanups to the NXP guts driver

   - Arm SCMI firmware driver updates to add tracing support, and use
     the firmware interfaces for system power control and for power
     capping"

* tag 'arm-drivers-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (125 commits)
  soc: a64fx-diag: disable modular build
  dt-bindings: soc: qcom: qcom,smd-rpm: add power-controller
  dt-bindings: soc: qcom: aoss: document qcom,sm8450-aoss-qmp
  dt-bindings: soc: qcom,rpmh-rsc: simplify qcom,tcs-config
  ARM: mach-qcom: Add support for MSM8909
  dt-bindings: arm: cpus: Document "qcom,msm8909-smp" enable-method
  soc: qcom: spm: Add CPU data for MSM8909
  dt-bindings: soc: qcom: spm: Add MSM8909 CPU compatible
  soc: qcom: rpmpd: Add compatible for MSM8909
  dt-bindings: power: qcom-rpmpd: Add MSM8909 power domains
  soc: qcom: smd-rpm: Add compatible for MSM8909
  dt-bindings: soc: qcom: smd-rpm: Add MSM8909
  soc: qcom: icc-bwmon: Remove unnecessary print function dev_err()
  soc: fujitsu: Add A64FX diagnostic interrupt driver
  soc: qcom: socinfo: Fix the id of SA8540P SoC
  soc: qcom: Make QCOM_RPMPD depend on PM
  tty: serial: bcm63xx: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
  spi: bcm63xx-hsspi: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
  clk: bcm: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
  hwrng: bcm2835: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
  ...
parents e233cc59 99978d2f
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -221,6 +221,7 @@ properties:
          - qcom,kpss-acc-v1
          - qcom,kpss-acc-v1
          - qcom,kpss-acc-v2
          - qcom,kpss-acc-v2
          - qcom,msm8226-smp
          - qcom,msm8226-smp
          - qcom,msm8909-smp
          # Only valid on ARM 32-bit, see above for ARM v8 64-bit
          # Only valid on ARM 32-bit, see above for ARM v8 64-bit
          - qcom,msm8916-smp
          - qcom,msm8916-smp
          - renesas,apmu
          - renesas,apmu
+1 −1
Original line number Original line Diff line number Diff line
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: QCOM device tree bindings
title: QCOM device tree bindings


maintainers:
maintainers:
  - Stephen Boyd <sboyd@codeaurora.org>
  - Bjorn Andersson <bjorn.andersson@linaro.org>


description: |
description: |
  Some qcom based bootloaders identify the dtb blob based on a set of
  Some qcom based bootloaders identify the dtb blob based on a set of
+40 −0
Original line number Original line 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/tegra/nvidia,tegra194-axi2apb.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: NVIDIA Tegra194 AXI2APB bridge

maintainers:
  - Sumit Gupta <sumitg@nvidia.com>

properties:
  $nodename:
    pattern: "^axi2apb@([0-9a-f]+)$"

  compatible:
    enum:
      - nvidia,tegra194-axi2apb

  reg:
    maxItems: 6
    description: Physical base address and length of registers for all bridges

additionalProperties: false

required:
  - compatible
  - reg

examples:
  - |
    axi2apb: axi2apb@2390000 {
      compatible = "nvidia,tegra194-axi2apb";
      reg = <0x02390000 0x1000>,
            <0x023a0000 0x1000>,
            <0x023b0000 0x1000>,
            <0x023c0000 0x1000>,
            <0x023d0000 0x1000>,
            <0x023e0000 0x1000>;
    };
+97 −0
Original line number Original line 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/tegra/nvidia,tegra194-cbb.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: NVIDIA Tegra194 CBB 1.0 bindings

maintainers:
  - Sumit Gupta <sumitg@nvidia.com>

description: |+
  The Control Backbone (CBB) is comprised of the physical path from an
  initiator to a target's register configuration space. CBB 1.0 has
  multiple hierarchical sub-NOCs (Network-on-Chip) and connects various
  initiators and targets using different bridges like AXIP2P, AXI2APB.

  This driver handles errors due to illegal register accesses reported
  by the NOCs inside the CBB. NOCs reporting errors are cluster NOCs
  "AON-NOC, SCE-NOC, RCE-NOC, BPMP-NOC, CV-NOC" and "CBB Central NOC"
  which is the main NOC.

  By default, the access issuing initiator is informed about the error
  using SError or Data Abort exception unless the ERD (Error Response
  Disable) is enabled/set for that initiator. If the ERD is enabled, then
  SError or Data Abort is masked and the error is reported with interrupt.

  - For CCPLEX (CPU Complex) initiator, the driver sets ERD bit. So, the
    errors due to illegal accesses from CCPLEX are reported by interrupts.
    If ERD is not set, then error is reported by SError.
  - For other initiators, the ERD is disabled. So, the access issuing
    initiator is informed about the illegal access by Data Abort exception.
    In addition, an interrupt is also generated to CCPLEX. These initiators
    include all engines using Cortex-R5 (which is ARMv7 CPU cluster) and
    engines like TSEC (Security co-processor), NVDEC (NVIDIA Video Decoder
    engine) etc which can initiate transactions.

  The driver prints relevant debug information like Error Code, Error
  Description, Master, Address, AXI ID, Cache, Protection, Security Group
  etc on receiving error notification.

properties:
  $nodename:
    pattern: "^[a-z]+-noc@[0-9a-f]+$"

  compatible:
    enum:
      - nvidia,tegra194-cbb-noc
      - nvidia,tegra194-aon-noc
      - nvidia,tegra194-bpmp-noc
      - nvidia,tegra194-rce-noc
      - nvidia,tegra194-sce-noc

  reg:
    maxItems: 1

  interrupts:
    description:
      CCPLEX receives secure or nonsecure interrupt depending on error type.
      A secure interrupt is received for SEC(firewall) & SLV errors and a
      non-secure interrupt is received for TMO & DEC errors.
    items:
      - description: non-secure interrupt
      - description: secure interrupt

  nvidia,axi2apb:
    $ref: '/schemas/types.yaml#/definitions/phandle'
    description:
      Specifies the node having all axi2apb bridges which need to be checked
      for any error logged in their status register.

  nvidia,apbmisc:
    $ref: '/schemas/types.yaml#/definitions/phandle'
    description:
      Specifies the apbmisc node which need to be used for reading the ERD
      register.

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - nvidia,apbmisc

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    cbb-noc@2300000 {
        compatible = "nvidia,tegra194-cbb-noc";
        reg = <0x02300000 0x1000>;
        interrupts = <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
        nvidia,axi2apb = <&axi2apb>;
        nvidia,apbmisc = <&apbmisc>;
    };
+74 −0
Original line number Original line 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/tegra/nvidia,tegra234-cbb.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: NVIDIA Tegra CBB 2.0 bindings

maintainers:
  - Sumit Gupta <sumitg@nvidia.com>

description: |+
  The Control Backbone (CBB) is comprised of the physical path from an
  initiator to a target's register configuration space. CBB 2.0 consists
  of multiple sub-blocks connected to each other to create a topology.
  The Tegra234 SoC has different fabrics based on CBB 2.0 architecture
  which include cluster fabrics BPMP, AON, PSC, SCE, RCE, DCE, FSI and
  "CBB central fabric".

  In CBB 2.0, each initiator which can issue transactions connects to a
  Root Master Node (MN) before it connects to any other element of the
  fabric. Each Root MN contains a Error Monitor (EM) which detects and
  logs error. Interrupts from various EM blocks are collated by Error
  Notifier (EN) which is per fabric and presents a single interrupt from
  fabric to the SoC interrupt controller.

  The driver handles errors from CBB due to illegal register accesses
  and prints debug information about failed transaction on receiving
  the interrupt from EN. Debug information includes Error Code, Error
  Description, MasterID, Fabric, SlaveID, Address, Cache, Protection,
  Security Group etc on receiving error notification.

  If the Error Response Disable (ERD) is set/enabled for an initiator,
  then SError or Data abort exception error response is masked and an
  interrupt is used for reporting errors due to illegal accesses from
  that initiator. The value returned on read failures is '0xFFFFFFFF'
  for compatibility with PCIE.

properties:
  $nodename:
    pattern: "^[a-z]+-fabric@[0-9a-f]+$"

  compatible:
    enum:
      - nvidia,tegra234-aon-fabric
      - nvidia,tegra234-bpmp-fabric
      - nvidia,tegra234-cbb-fabric
      - nvidia,tegra234-dce-fabric
      - nvidia,tegra234-rce-fabric
      - nvidia,tegra234-sce-fabric

  reg:
    maxItems: 1

  interrupts:
    items:
      - description: secure interrupt from error notifier

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    cbb-fabric@1300000 {
      compatible = "nvidia,tegra234-cbb-fabric";
      reg = <0x13a00000 0x400000>;
      interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
    };
Loading