STM32MP15 in trusted mode and STM32MP13 by default use OP-TEE as secure monitor and some resets, clocks and voltage regulators are off-limits to the normal world. This series syncs barebox SCMI support with v6.6 and adds OP-TEE as transport alongside SMCCC. This series has been tested on: - STM32MP15 + OP-TEE + OP-TEE shm - STM32MP13 + OP-TEE + OP-TEE shm - STM32MP15 + OP-TEE + CFG_STM32MP1_SCMI_SIP - STM32MP15 + TF-A as SCMI provider (no OP-TEE) This series depends on the OP-TEE infrastructure added in <M20231127063559.2205776-1-a.fatoum@xxxxxxxxxxxxxx> Ahmad Fatoum (6): firmware: arm_scmi: sync with Linux v6.6 ARM: dts: stm32mp: dk1/2: build SCMI-enabled device tree nvmem: bsec: add support for STM32 bsec pseudo TA ARM: dts: stm32mp: ev1: build extra device tree with SCMI ARM: dts: stm32mp: add dtsi for SMC SiP-based SCMI ARM: dts: stm32mp: lxa-mc1: build SCMI-enabled DT arch/arm/dts/Makefile | 7 +- arch/arm/dts/stm32mp1-scmi-smc.dtsi | 49 + arch/arm/dts/stm32mp157a-dk1-scmi.dts | 4 + arch/arm/dts/stm32mp157c-dk2-scmi.dts | 4 + arch/arm/dts/stm32mp157c-ev1-scmi.dts | 20 + arch/arm/dts/stm32mp157c-lxa-mc1-scmi.dts | 63 + drivers/clk/clk-scmi.c | 100 +- drivers/firmware/Kconfig | 12 +- drivers/firmware/arm_scmi/Kconfig | 86 + drivers/firmware/arm_scmi/Makefile | 18 +- drivers/firmware/arm_scmi/base.c | 85 +- drivers/firmware/arm_scmi/bus.c | 356 ++++- drivers/firmware/arm_scmi/clock.c | 292 ++-- drivers/firmware/arm_scmi/common.h | 315 ++-- drivers/firmware/arm_scmi/driver.c | 1668 +++++++++++++------- drivers/firmware/arm_scmi/msg.c | 93 ++ drivers/firmware/arm_scmi/optee.c | 614 +++++++ drivers/firmware/arm_scmi/power.c | 229 +++ drivers/firmware/arm_scmi/protocols.h | 325 ++++ drivers/firmware/arm_scmi/reset.c | 67 +- drivers/firmware/arm_scmi/scmi_pm_domain.c | 135 ++ drivers/firmware/arm_scmi/sensors.c | 936 +++++++++++ drivers/firmware/arm_scmi/shmem.c | 53 +- drivers/firmware/arm_scmi/smc.c | 86 +- drivers/firmware/arm_scmi/voltage.c | 204 ++- drivers/nvmem/Kconfig | 6 + drivers/nvmem/Makefile | 1 + drivers/nvmem/bsec.c | 133 +- drivers/nvmem/stm32-bsec-optee-ta.c | 298 ++++ drivers/nvmem/stm32-bsec-optee-ta.h | 85 + drivers/regulator/scmi-regulator.c | 13 +- drivers/reset/reset-scmi.c | 2 +- include/linux/scmi_protocol.h | 94 +- 33 files changed, 5216 insertions(+), 1237 deletions(-) create mode 100644 arch/arm/dts/stm32mp1-scmi-smc.dtsi create mode 100644 arch/arm/dts/stm32mp157a-dk1-scmi.dts create mode 100644 arch/arm/dts/stm32mp157c-dk2-scmi.dts create mode 100644 arch/arm/dts/stm32mp157c-ev1-scmi.dts create mode 100644 arch/arm/dts/stm32mp157c-lxa-mc1-scmi.dts create mode 100644 drivers/firmware/arm_scmi/Kconfig create mode 100644 drivers/firmware/arm_scmi/msg.c create mode 100644 drivers/firmware/arm_scmi/optee.c create mode 100644 drivers/firmware/arm_scmi/power.c create mode 100644 drivers/firmware/arm_scmi/protocols.h create mode 100644 drivers/firmware/arm_scmi/scmi_pm_domain.c create mode 100644 drivers/firmware/arm_scmi/sensors.c create mode 100644 drivers/nvmem/stm32-bsec-optee-ta.c create mode 100644 drivers/nvmem/stm32-bsec-optee-ta.h -- 2.39.2