Skip to content

Commit

Permalink
Merge tag 'arm-drivers-5.18' of git://git.kernel.org/pub/scm/linux/ke…
Browse files Browse the repository at this point in the history
…rnel/git/soc/soc

Pull ARM driver updates from Arnd Bergmann:
 "There are a few separately maintained driver subsystems that we merge
  through the SoC tree, notable changes are:

   - Memory controller updates, mainly for Tegra and Mediatek SoCs, and
     clarifications for the memory controller DT bindings

   - SCMI firmware interface updates, in particular a new transport
     based on OPTEE and support for atomic operations.

   - Cleanups to the TEE subsystem, refactoring its memory management

  For SoC specific drivers without a separate subsystem, changes include

   - Smaller updates and fixes for TI, AT91/SAMA5, Qualcomm and NXP
     Layerscape SoCs.

   - Driver support for Microchip SAMA5D29, Tesla FSD, Renesas RZ/G2L,
     and Qualcomm SM8450.

   - Better power management on Mediatek MT81xx, NXP i.MX8MQ and older
     NVIDIA Tegra chips"

* tag 'arm-drivers-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (154 commits)
  ARM: spear: fix typos in comments
  soc/microchip: fix invalid free in mpfs_sys_controller_delete
  soc: s4: Add support for power domains controller
  dt-bindings: power: add Amlogic s4 power domains bindings
  ARM: at91: add support in soc driver for new SAMA5D29
  soc: mediatek: mmsys: add sw0_rst_offset in mmsys driver data
  dt-bindings: memory: renesas,rpc-if: Document RZ/V2L SoC
  memory: emif: check the pointer temp in get_device_details()
  memory: emif: Add check for setup_interrupts
  dt-bindings: arm: mediatek: mmsys: add support for MT8186
  dt-bindings: mediatek: add compatible for MT8186 pwrap
  soc: mediatek: pwrap: add pwrap driver for MT8186 SoC
  soc: mediatek: mmsys: add mmsys reset control for MT8186
  soc: mediatek: mtk-infracfg: Disable ACP on MT8192
  soc: ti: k3-socinfo: Add AM62x JTAG ID
  soc: mediatek: add MTK mutex support for MT8186
  soc: mediatek: mmsys: add mt8186 mmsys routing table
  soc: mediatek: pm-domains: Add support for mt8186
  dt-bindings: power: Add MT8186 power domains
  soc: mediatek: pm-domains: Add support for mt8195
  ...
  • Loading branch information
torvalds committed Mar 24, 2022
2 parents baaa68a + 339ac71 commit b4bc93b
Show file tree
Hide file tree
Showing 124 changed files with 7,628 additions and 1,419 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ properties:
- mediatek,mt8167-mmsys
- mediatek,mt8173-mmsys
- mediatek,mt8183-mmsys
- mediatek,mt8186-mmsys
- mediatek,mt8192-mmsys
- mediatek,mt8365-mmsys
- const: syscon
Expand Down
2 changes: 2 additions & 0 deletions Documentation/devicetree/bindings/arm/msm/qcom,llcc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ properties:
- qcom,sm6350-llcc
- qcom,sm8150-llcc
- qcom,sm8250-llcc
- qcom,sm8350-llcc
- qcom,sm8450-llcc

reg:
items:
Expand Down
198 changes: 198 additions & 0 deletions Documentation/devicetree/bindings/clock/tesla,fsd-clock.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/tesla,fsd-clock.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Tesla FSD (Full Self-Driving) SoC clock controller

maintainers:
- Alim Akhtar <alim.akhtar@samsung.com>
- linux-fsd@tesla.com

description: |
FSD clock controller consist of several clock management unit
(CMU), which generates clocks for various inteernal SoC blocks.
The root clock comes from external OSC clock (24 MHz).
All available clocks are defined as preprocessor macros in
'dt-bindings/clock/fsd-clk.h' header.
properties:
compatible:
enum:
- tesla,fsd-clock-cmu
- tesla,fsd-clock-imem
- tesla,fsd-clock-peric
- tesla,fsd-clock-fsys0
- tesla,fsd-clock-fsys1
- tesla,fsd-clock-mfc
- tesla,fsd-clock-cam_csi

clocks:
minItems: 1
maxItems: 6

clock-names:
minItems: 1
maxItems: 6

"#clock-cells":
const: 1

reg:
maxItems: 1

allOf:
- if:
properties:
compatible:
contains:
const: tesla,fsd-clock-cmu
then:
properties:
clocks:
items:
- description: External reference clock (24 MHz)
clock-names:
items:
- const: fin_pll

- if:
properties:
compatible:
contains:
const: tesla,fsd-clock-imem
then:
properties:
clocks:
items:
- description: External reference clock (24 MHz)
- description: IMEM TCU clock (from CMU_CMU)
- description: IMEM bus clock (from CMU_CMU)
- description: IMEM DMA clock (from CMU_CMU)
clock-names:
items:
- const: fin_pll
- const: dout_cmu_imem_tcuclk
- const: dout_cmu_imem_aclk
- const: dout_cmu_imem_dmaclk

- if:
properties:
compatible:
contains:
const: tesla,fsd-clock-peric
then:
properties:
clocks:
items:
- description: External reference clock (24 MHz)
- description: Shared0 PLL div4 clock (from CMU_CMU)
- description: PERIC shared1 div36 clock (from CMU_CMU)
- description: PERIC shared0 div3 TBU clock (from CMU_CMU)
- description: PERIC shared0 div20 clock (from CMU_CMU)
- description: PERIC shared1 div4 DMAclock (from CMU_CMU)
clock-names:
items:
- const: fin_pll
- const: dout_cmu_pll_shared0_div4
- const: dout_cmu_peric_shared1div36
- const: dout_cmu_peric_shared0div3_tbuclk
- const: dout_cmu_peric_shared0div20
- const: dout_cmu_peric_shared1div4_dmaclk

- if:
properties:
compatible:
contains:
const: tesla,fsd-clock-fsys0
then:
properties:
clocks:
items:
- description: External reference clock (24 MHz)
- description: Shared0 PLL div6 clock (from CMU_CMU)
- description: FSYS0 shared1 div4 clock (from CMU_CMU)
- description: FSYS0 shared0 div4 clock (from CMU_CMU)
clock-names:
items:
- const: fin_pll
- const: dout_cmu_pll_shared0_div6
- const: dout_cmu_fsys0_shared1div4
- const: dout_cmu_fsys0_shared0div4

- if:
properties:
compatible:
contains:
const: tesla,fsd-clock-fsys1
then:
properties:
clocks:
items:
- description: External reference clock (24 MHz)
- description: FSYS1 shared0 div8 clock (from CMU_CMU)
- description: FSYS1 shared0 div4 clock (from CMU_CMU)
clock-names:
items:
- const: fin_pll
- const: dout_cmu_fsys1_shared0div8
- const: dout_cmu_fsys1_shared0div4

- if:
properties:
compatible:
contains:
const: tesla,fsd-clock-mfc
then:
properties:
clocks:
items:
- description: External reference clock (24 MHz)
clock-names:
items:
- const: fin_pll

- if:
properties:
compatible:
contains:
const: tesla,fsd-clock-cam_csi
then:
properties:
clocks:
items:
- description: External reference clock (24 MHz)
clock-names:
items:
- const: fin_pll

required:
- compatible
- "#clock-cells"
- clocks
- clock-names
- reg

additionalProperties: false

examples:
# Clock controller node for CMU_FSYS1
- |
#include <dt-bindings/clock/fsd-clk.h>
clock_fsys1: clock-controller@16810000 {
compatible = "tesla,fsd-clock-fsys1";
reg = <0x16810000 0x3000>;
#clock-cells = <1>;
clocks = <&fin_pll>,
<&clock_cmu DOUT_CMU_FSYS1_SHARED0DIV8>,
<&clock_cmu DOUT_CMU_FSYS1_SHARED0DIV4>;
clock-names = "fin_pll",
"dout_cmu_fsys1_shared0div8",
"dout_cmu_fsys1_shared0div4";
};
...
75 changes: 75 additions & 0 deletions Documentation/devicetree/bindings/firmware/arm,scmi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ properties:
The virtio transport only supports a single device.
items:
- const: arm,scmi-virtio
- description: SCMI compliant firmware with OP-TEE transport
items:
- const: linaro,scmi-optee

interrupts:
description:
Expand Down Expand Up @@ -78,11 +81,24 @@ properties:
'#size-cells':
const: 0

atomic-threshold-us:
description:
An optional time value, expressed in microseconds, representing, on this
platform, the threshold above which any SCMI command, advertised to have
an higher-than-threshold execution latency, should not be considered for
atomic mode of operation, even if requested.
default: 0

arm,smc-id:
$ref: /schemas/types.yaml#/definitions/uint32
description:
SMC id required when using smc or hvc transports

linaro,optee-channel-id:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Channel specifier required when using OP-TEE transport.

protocol@11:
type: object
properties:
Expand Down Expand Up @@ -195,6 +211,12 @@ patternProperties:
minItems: 1
maxItems: 2

linaro,optee-channel-id:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Channel specifier required when using OP-TEE transport and
protocol has a dedicated communication channel.

required:
- reg

Expand Down Expand Up @@ -226,6 +248,16 @@ else:
- arm,smc-id
- shmem

else:
if:
properties:
compatible:
contains:
const: linaro,scmi-optee
then:
required:
- linaro,optee-channel-id

examples:
- |
firmware {
Expand All @@ -240,6 +272,8 @@ examples:
#address-cells = <1>;
#size-cells = <0>;
atomic-threshold-us = <10000>;
scmi_devpd: protocol@11 {
reg = <0x11>;
#power-domain-cells = <1>;
Expand Down Expand Up @@ -340,7 +374,48 @@ examples:
reg = <0x11>;
#power-domain-cells = <1>;
};
};
};
- |
firmware {
scmi {
compatible = "linaro,scmi-optee";
linaro,optee-channel-id = <0>;
#address-cells = <1>;
#size-cells = <0>;
scmi_dvfs1: protocol@13 {
reg = <0x13>;
linaro,optee-channel-id = <1>;
shmem = <&cpu_optee_lpri0>;
#clock-cells = <1>;
};
scmi_clk0: protocol@14 {
reg = <0x14>;
#clock-cells = <1>;
};
};
};
soc {
#address-cells = <2>;
#size-cells = <2>;
sram@51000000 {
compatible = "mmio-sram";
reg = <0x0 0x51000000 0x0 0x10000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x0 0x51000000 0x10000>;
cpu_optee_lpri0: optee-sram-section@0 {
compatible = "arm,scmi-shmem";
reg = <0x0 0x80>;
};
};
};
Expand Down
Loading

0 comments on commit b4bc93b

Please sign in to comment.