Unverified Commit 66b55cae authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'qcom-drivers-for-6.2' of...

Merge tag 'qcom-drivers-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers

Qualcomm driver updates for 6.2

The qcom,msm-id and qcom,board-id DeviceTree properties are documented,
to allow them to be used in configurations or devices requiring these
and the socinfo driver is updated to reuse the introduced identifiers.

The rpmh-rsc driver is extended to register for PM runtime notifications
from the CPU clusters, in order to submit sleep and wake votes the last
core in a cluster is being powered down.

A mechanism for keeping rpmhpd resources voted until sync_state is
introduced, this ensures that power-domains required during boot are
kept enabled. The rpmhpd power-domains for SDM670 are also added.

Support for the new QDU1000/QRU1000 platform is introduced in the rpmhpd
and socinfo drivers.

The APR driver gains missing error handling. QMI message descriptors in
the PDR driver are made const.

Support for the RPM found in SM6375 is added. The SPM driver gains
support for MSM8939 and MSM8976 platforms.

The stats and command-db drvers are marked as not having PM support.

* tag 'qcom-drivers-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (36 commits)
  dt-bindings: firmware: scm: add sdm670 compatible
  soc: qcom: rpmh-rsc: Write CONTROL_TCS with next timer wakeup
  soc: qcom: rpmh-rsc: Save base address of drv
  PM: domains: Store the next hrtimer wakeup in genpd
  soc: qcom: rpmh-rsc: Attach RSC to cluster PM domain
  dt-bindings: soc: qcom: Update devicetree binding document for rpmh-rsc
  dt-bindings: soc: qcom: qcom,smd-rpm: Use qcom,smd-channels on MSM8976
  soc: qcom: apr: Add check for idr_alloc and of_property_read_string_index
  soc: qcom: socinfo: Add QDU1000/QRU1000 SoC IDs to the soc_id table
  dt-bindings: arm: qcom,ids: Add SoC IDs for QDU1000/QRU1000
  soc: qcom: rpmhpd: Add QDU1000/QRU1000 power domains
  dt-bindings: power: rpmpd: Add QDU1000/QRU1000 to rpmpd binding
  dt-bindings: qcom: smp2p: Add WPSS node names to pattern property
  soc: qcom: spm: Implement support for SAWv2.3, MSM8976 L2 PM
  dt-bindings: soc: qcom: spm: Add compatibles for MSM8976 L2
  soc: qcom: llcc: make irq truly optional
  soc: qcom: spm: Add MSM8939 SPM register data
  dt-bindings: soc: qcom: spm: Add MSM8939 CPU compatible
  dt-bindings: soc: qcom: aoss: Add sc8280xp compatible
  dt-bindings: firmware: document Qualcomm SM6375 SCM
  ...

Link: https://lore.kernel.org/r/20221122202748.1854487-1-andersson@kernel.org


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 919977b6 aa9f4740
Loading
Loading
Loading
Loading
+120 −0
Original line number Diff line number Diff line
@@ -739,6 +739,126 @@ properties:
              - sony,pdx223
          - const: qcom,sm8450

  # Board compatibles go above

  qcom,msm-id:
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    minItems: 1
    maxItems: 8
    items:
      items:
        - description: |
            MSM chipset ID - an exact match value consisting of two bitfields::
             - bits 0-15  - The unique MSM chipset ID
             - bits 16-31 - Reserved; should be 0
        - description: |
            Hardware revision ID - a chipset specific 32-bit ID representing
            the version of the chipset.  It is best a match value - the
            bootloader will look for the closest possible match.
    deprecated: true
    description:
      The MSM chipset and hardware revision used Qualcomm bootloaders.  It
      can optionally be an array of these to indicate multiple hardware that
      use the same device tree.  It is expected that the bootloader will use
      this information at boot-up to decide which device tree to use when given
      multiple device trees, some of which may not be compatible with the
      actual hardware.  It is the bootloader's responsibility to pass the
      correct device tree to the kernel.
      The property is deprecated.

  qcom,board-id:
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    minItems: 1
    maxItems: 8
    oneOf:
      - items:
          - items:
              - description: |
                  Board ID consisting of three bitfields::
                    - bits 31-24 - Unused
                    - bits 23-16 - Platform Version Major
                    - bits 15-8  - Platform Version Minor
                    - bits 7-0   - Platform Type
                  Platform Type field is an exact match value.  The
                  Platform Major/Minor field is a best match.  The bootloader will
                  look for the closest possible match.
              - description: |
                  Subtype ID unique to a Platform Type/Chipset ID.  For a given
                  Platform Type, there will typically only be a single board and the
                  subtype_id will be 0.  However in some cases board variants may
                  need to be distinguished by different subtype_id values.
      - items:
          # OnePlus uses a variant of board-id with four elements:
          - items:
              - const: 8
              - const: 0
              - description: OnePlus board ID
              - description: OnePlus subtype ID
    deprecated: true
    description:
      The board type and revision information.  It can optionally be an array
      of these to indicate multiple boards that use the same device tree.  It
      is expected that the bootloader will use this information at boot-up to
      decide which device tree to use when given multiple device trees, some of
      which may not be compatible with the actual hardware.  It is the
      bootloader's responsibility to pass the correct device tree to the
      kernel
      The property is deprecated.

allOf:
  # Explicit allow-list for older SoCs. The legacy properties are not allowed
  # on newer SoCs.
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,apq8026
              - qcom,apq8094
              - qcom,apq8096
              - qcom,msm8992
              - qcom,msm8994
              - qcom,msm8996
              - qcom,msm8998
              - qcom,sdm630
              - qcom,sdm632
              - qcom,sdm845
              - qcom,sdx55
              - qcom,sdx65
              - qcom,sm6125
              - qcom,sm6350
              - qcom,sm7225
              - qcom,sm8150
              - qcom,sm8250
    then:
      properties:
        qcom,board-id: true
        qcom,msm-id: true
    else:
      properties:
        qcom,board-id: false
        qcom,msm-id: false

  - if:
      properties:
        compatible:
          contains:
            enum:
              - oneplus,cheeseburger
              - oneplus,dumpling
              - oneplus,enchilada
              - oneplus,fajita
    then:
      properties:
        qcom,board-id:
          items:
            minItems: 4
    else:
      properties:
        qcom,board-id:
          items:
            maxItems: 2

additionalProperties: true

...
+3 −0
Original line number Diff line number Diff line
@@ -41,12 +41,14 @@ properties:
          - qcom,scm-sc7180
          - qcom,scm-sc7280
          - qcom,scm-sc8280xp
          - qcom,scm-sdm670
          - qcom,scm-sdm845
          - qcom,scm-sdx55
          - qcom,scm-sdx65
          - qcom,scm-sm6115
          - qcom,scm-sm6125
          - qcom,scm-sm6350
          - qcom,scm-sm6375
          - qcom,scm-sm8150
          - qcom,scm-sm8250
          - qcom,scm-sm8350
@@ -88,6 +90,7 @@ allOf:
              - qcom,scm-apq8064
              - qcom,scm-msm8660
              - qcom,scm-msm8960
              - qcom,scm-sm6375
    then:
      properties:
        clock-names:
+2 −0
Original line number Diff line number Diff line
@@ -28,12 +28,14 @@ properties:
      - qcom,msm8998-rpmpd
      - qcom,qcm2290-rpmpd
      - qcom,qcs404-rpmpd
      - qcom,qdu1000-rpmhpd
      - qcom,sa8540p-rpmhpd
      - qcom,sdm660-rpmpd
      - qcom,sc7180-rpmhpd
      - qcom,sc7280-rpmhpd
      - qcom,sc8180x-rpmhpd
      - qcom,sc8280xp-rpmhpd
      - qcom,sdm670-rpmhpd
      - qcom,sdm845-rpmhpd
      - qcom,sdx55-rpmhpd
      - qcom,sdx65-rpmhpd
+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ properties:
          - qcom,sc7180-aoss-qmp
          - qcom,sc7280-aoss-qmp
          - qcom,sc8180x-aoss-qmp
          - qcom,sc8280xp-aoss-qmp
          - qcom,sdm845-aoss-qmp
          - qcom,sm6350-aoss-qmp
          - qcom,sm8150-aoss-qmp
+5 −0
Original line number Diff line number Diff line
@@ -99,6 +99,9 @@ properties:
      - const: drv-2
      - const: drv-3

  power-domains:
    maxItems: 1

  bcm-voter:
    $ref: /schemas/interconnect/qcom,bcm-voter.yaml#

@@ -151,6 +154,7 @@ examples:
                          <SLEEP_TCS   3>,
                          <WAKE_TCS    3>,
                          <CONTROL_TCS 1>;
        power-domains = <&CLUSTER_PD>;
      };

  - |
@@ -197,6 +201,7 @@ examples:
                          <SLEEP_TCS   3>,
                          <WAKE_TCS    3>,
                          <CONTROL_TCS 0>;
        power-domains = <&CLUSTER_PD>;

        clock-controller {
            compatible = "qcom,sm8350-rpmh-clk";
Loading