mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 11:56:58 +00:00
Pull SoC driver updates from Arnd Bergmann:
"This is the first half of the driver changes:
- A treewide interface change to the "syscore" operations for power
management, as a preparation for future Tegra specific changes
- Reset controller updates with added drivers for LAN969x, eic770 and
RZ/G3S SoCs
- Protection of system controller registers on Renesas and Google
SoCs, to prevent trivially triggering a system crash from e.g.
debugfs access
- soc_device identification updates on Nvidia, Exynos and Mediatek
- debugfs support in the ST STM32 firewall driver
- Minor updates for SoC drivers on AMD/Xilinx, Renesas, Allwinner, TI
- Cleanups for memory controller support on Nvidia and Renesas"
* tag 'soc-drivers-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (114 commits)
memory: tegra186-emc: Fix missing put_bpmp
Documentation: reset: Remove reset_controller_add_lookup()
reset: fix BIT macro reference
reset: rzg2l-usbphy-ctrl: Fix a NULL vs IS_ERR() bug in probe
reset: th1520: Support reset controllers in more subsystems
reset: th1520: Prepare for supporting multiple controllers
dt-bindings: reset: thead,th1520-reset: Add controllers for more subsys
dt-bindings: reset: thead,th1520-reset: Remove non-VO-subsystem resets
reset: remove legacy reset lookup code
clk: davinci: psc: drop unused reset lookup
reset: rzg2l-usbphy-ctrl: Add support for RZ/G3S SoC
reset: rzg2l-usbphy-ctrl: Add support for USB PWRRDY
dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document RZ/G3S support
reset: eswin: Add eic7700 reset driver
dt-bindings: reset: eswin: Documentation for eic7700 SoC
reset: sparx5: add LAN969x support
dt-bindings: reset: microchip: Add LAN969x support
soc: rockchip: grf: Add select correct PWM implementation on RK3368
soc/tegra: pmc: Add USB wake events for Tegra234
amba: tegra-ahb: Fix device leak on SMMU enable
...
110 lines
3.0 KiB
YAML
110 lines
3.0 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/bus/st,stm32mp25-rifsc.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: STM32 Resource isolation framework security controller
|
|
|
|
maintainers:
|
|
- Gatien Chevallier <gatien.chevallier@foss.st.com>
|
|
|
|
description: |
|
|
Resource isolation framework (RIF) is a comprehensive set of hardware blocks
|
|
designed to enforce and manage isolation of STM32 hardware resources like
|
|
memory and peripherals.
|
|
|
|
The RIFSC (RIF security controller) is composed of three sets of registers,
|
|
each managing a specific set of hardware resources:
|
|
- RISC registers associated with RISUP logic (resource isolation device unit
|
|
for peripherals), assign all non-RIF aware peripherals to zero, one or
|
|
any security domains (secure, privilege, compartment).
|
|
- RIMC registers: associated with RIMU logic (resource isolation master
|
|
unit), assign all non RIF-aware bus master to one security domain by
|
|
setting secure, privileged and compartment information on the system bus.
|
|
Alternatively, the RISUP logic controlling the device port access to a
|
|
peripheral can assign target bus attributes to this peripheral master port
|
|
(supported attribute: CID).
|
|
- RISC registers associated with RISAL logic (resource isolation device unit
|
|
for address space - Lite version), assign address space subregions to one
|
|
security domains (secure, privilege, compartment).
|
|
|
|
select:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- st,stm32mp21-rifsc
|
|
- st,stm32mp25-rifsc
|
|
required:
|
|
- compatible
|
|
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- enum:
|
|
- st,stm32mp21-rifsc
|
|
- st,stm32mp25-rifsc
|
|
- const: simple-bus
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 1
|
|
|
|
ranges: true
|
|
|
|
"#access-controller-cells":
|
|
const: 1
|
|
description:
|
|
Contains the firewall ID associated to the peripheral.
|
|
|
|
patternProperties:
|
|
"@[0-9a-f]+$":
|
|
description: Peripherals
|
|
type: object
|
|
|
|
additionalProperties: true
|
|
|
|
required:
|
|
- access-controllers
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- "#address-cells"
|
|
- "#size-cells"
|
|
- "#access-controller-cells"
|
|
- ranges
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
// In this example, the usart2 device refers to rifsc as its domain
|
|
// controller.
|
|
// Access rights are verified before creating devices.
|
|
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
rifsc: bus@42080000 {
|
|
compatible = "st,stm32mp25-rifsc", "simple-bus";
|
|
reg = <0x42080000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
#access-controller-cells = <1>;
|
|
ranges;
|
|
|
|
usart2: serial@400e0000 {
|
|
compatible = "st,stm32h7-uart";
|
|
reg = <0x400e0000 0x400>;
|
|
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&ck_flexgen_08>;
|
|
access-controllers = <&rifsc 32>;
|
|
};
|
|
};
|