Skip to content

Commit

Permalink
Add STM32MP25 SPI NOR support
Browse files Browse the repository at this point in the history
Merge series from patrice.chotard@foss.st.com:

This series adds SPI NOR support for STM32MP25 SoCs from STMicroelectronics.

On STM32MP25 SoCs family, an Octo Memory Manager block manages the muxing,
the memory area split, the chip select override and the time constraint
between its 2 Octo SPI children.

Due to these depedencies, this series adds support for:
  - Octo Memory Manager driver (not applied for SPI).
  - Octo SPI driver.
  - yaml schema for Octo Memory Manager and Octo SPI drivers.

The device tree files adds Octo Memory Manager and its 2 associated Octo
SPI chidren in stm32mp251.dtsi and adds SPI NOR support in stm32mp257f-ev1
board.
  • Loading branch information
Mark Brown committed Mar 4, 2025
2 parents 7304d19 + 79b8a70 commit 5fac6c2
Show file tree
Hide file tree
Showing 595 changed files with 7,973 additions and 3,922 deletions.
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,7 @@ Juha Yrjola <juha.yrjola@solidboot.com>
Julien Thierry <julien.thierry.kdev@gmail.com> <julien.thierry@arm.com>
Iskren Chernev <me@iskren.info> <iskren.chernev@gmail.com>
Kalle Valo <kvalo@kernel.org> <kvalo@codeaurora.org>
Kalle Valo <kvalo@kernel.org> <quic_kvalo@quicinc.com>
Kalyan Thota <quic_kalyant@quicinc.com> <kalyan_t@codeaurora.org>
Karthikeyan Periyasamy <quic_periyasa@quicinc.com> <periyasa@codeaurora.org>
Kathiravan T <quic_kathirav@quicinc.com> <kathirav@codeaurora.org>
Expand Down
6 changes: 2 additions & 4 deletions CREDITS
Original file line number Diff line number Diff line change
Expand Up @@ -2515,11 +2515,9 @@ D: SLS distribution
D: Initial implementation of VC's, pty's and select()

N: Pavel Machek
E: pavel@ucw.cz
E: pavel@kernel.org
P: 4096R/92DFCE96 4FA7 9EEF FCD4 C44F C585 B8C7 C060 2241 92DF CE96
D: Softcursor for vga, hypertech cdrom support, vcsa bugfix, nbd,
D: sun4/330 port, capabilities for elf, speedup for rm on ext2, USB,
D: work on suspend-to-ram/disk, killing duplicates from ioctl32,
D: NBD, Sun4/330 port, USB, work on suspend-to-ram/disk,
D: Altera SoCFPGA and Nokia N900 support.
S: Czech Republic

Expand Down
2 changes: 1 addition & 1 deletion Documentation/arch/arm64/gcs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ intended to be exhaustive.
shadow stacks rather than GCS.

* Support for GCS is reported to userspace via HWCAP_GCS in the aux vector
AT_HWCAP2 entry.
AT_HWCAP entry.

* GCS is enabled per thread. While there is support for disabling GCS
at runtime this should be done with great care.
Expand Down
3 changes: 3 additions & 0 deletions Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ title: Qualcomm Graphics Clock & Reset Controller

maintainers:
- Taniya Das <quic_tdas@quicinc.com>
- Imran Shaik <quic_imrashai@quicinc.com>

description: |
Qualcomm graphics clock control module provides the clocks, resets and power
Expand All @@ -23,10 +24,12 @@ description: |
include/dt-bindings/clock/qcom,gpucc-sm8150.h
include/dt-bindings/clock/qcom,gpucc-sm8250.h
include/dt-bindings/clock/qcom,gpucc-sm8350.h
include/dt-bindings/clock/qcom,qcs8300-gpucc.h
properties:
compatible:
enum:
- qcom,qcs8300-gpucc
- qcom,sdm845-gpucc
- qcom,sa8775p-gpucc
- qcom,sc7180-gpucc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,20 @@ title: Qualcomm Camera Clock & Reset Controller on SA8775P

maintainers:
- Taniya Das <quic_tdas@quicinc.com>
- Imran Shaik <quic_imrashai@quicinc.com>

description: |
Qualcomm camera clock control module provides the clocks, resets and power
domains on SA8775p.
See also: include/dt-bindings/clock/qcom,sa8775p-camcc.h
See also:
include/dt-bindings/clock/qcom,qcs8300-camcc.h
include/dt-bindings/clock/qcom,sa8775p-camcc.h
properties:
compatible:
enum:
- qcom,qcs8300-camcc
- qcom,sa8775p-camcc

clocks:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ description: |
properties:
compatible:
enum:
- qcom,qcs8300-videocc
- qcom,sa8775p-videocc

clocks:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/powertip,hx8238a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Powertip Electronic Technology Co. 320 x 240 LCD panel

maintainers:
- Lukasz Majewski <lukma@denx.de>

allOf:
- $ref: panel-dpi.yaml#

properties:
compatible:
items:
- const: powertip,hx8238a
- {} # panel-dpi, but not listed here to avoid false select

height-mm: true
panel-timing: true
port: true
power-supply: true
width-mm: true

additionalProperties: false

...
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/powertip,st7272.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Powertip Electronic Technology Co. 320 x 240 LCD panel

maintainers:
- Lukasz Majewski <lukma@denx.de>

allOf:
- $ref: panel-dpi.yaml#

properties:
compatible:
items:
- const: powertip,st7272
- {} # panel-dpi, but not listed here to avoid false select

height-mm: true
panel-timing: true
port: true
power-supply: true
width-mm: true

additionalProperties: false

...
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ properties:
compatible:
enum:
- ti,am625-dss
- ti,am62a7,dss
- ti,am62a7-dss
- ti,am65x-dss

reg:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,8 @@ allOf:

description: |
The Microchip LAN966x outband interrupt controller (OIC) maps the internal
interrupt sources of the LAN966x device to an external interrupt.
When the LAN966x device is used as a PCI device, the external interrupt is
routed to the PCI interrupt.
interrupt sources of the LAN966x device to a PCI interrupt when the LAN966x
device is used as a PCI device.
properties:
compatible:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies ath10k wireless devices

maintainers:
- Kalle Valo <kvalo@kernel.org>
- Jeff Johnson <jjohnson@kernel.org>

description:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies ath11k wireless devices (PCIe)

maintainers:
- Kalle Valo <kvalo@kernel.org>
- Jeff Johnson <jjohnson@kernel.org>

description: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies ath11k wireless devices

maintainers:
- Kalle Valo <kvalo@kernel.org>
- Jeff Johnson <jjohnson@kernel.org>

description: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ title: Qualcomm Technologies ath12k wireless devices (PCIe) with WSI interface

maintainers:
- Jeff Johnson <jjohnson@kernel.org>
- Kalle Valo <kvalo@kernel.org>

description: |
Qualcomm Technologies IEEE 802.11be PCIe devices with WSI interface.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ title: Qualcomm Technologies ath12k wireless devices (PCIe)

maintainers:
- Jeff Johnson <quic_jjohnson@quicinc.com>
- Kalle Valo <kvalo@kernel.org>

description:
Qualcomm Technologies IEEE 802.11be PCIe devices.
Expand Down
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ properties:
- qcom,qcs404-qfprom
- qcom,qcs615-qfprom
- qcom,qcs8300-qfprom
- qcom,sar2130p-qfprom
- qcom,sc7180-qfprom
- qcom,sc7280-qfprom
- qcom,sc8280xp-qfprom
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description:
Each sub-node is identified using the node's name, with valid values listed
for each of the pmics below.

For mp5496, s1, s2
For mp5496, s1, s2, l2, l5

For pm2250, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22
Expand Down
105 changes: 105 additions & 0 deletions Documentation/devicetree/bindings/spi/st,stm32mp25-ospi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/st,stm32mp25-ospi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32 Octal Serial Peripheral Interface (OSPI)

maintainers:
- Patrice Chotard <patrice.chotard@foss.st.com>

allOf:
- $ref: spi-controller.yaml#

properties:
compatible:
const: st,stm32mp25-ospi

reg:
maxItems: 1

memory-region:
description:
Memory region to be used for memory-map read access.
In memory-mapped mode, read access are performed from the memory
device using the direct mapping.
maxItems: 1

clocks:
maxItems: 1

interrupts:
maxItems: 1

resets:
items:
- description: phandle to OSPI block reset
- description: phandle to delay block reset

dmas:
maxItems: 2

dma-names:
items:
- const: tx
- const: rx

st,syscfg-dlyb:
description: configure OCTOSPI delay block.
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- description: phandle to syscfg
- description: register offset within syscfg

access-controllers:
description: phandle to the rifsc device to check access right
and in some cases, an additional phandle to the rcc device for
secure clock control.
items:
- description: phandle to bus controller
- description: phandle to clock controller
minItems: 1

power-domains:
maxItems: 1

required:
- compatible
- reg
- clocks
- interrupts
- st,syscfg-dlyb

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/clock/st,stm32mp25-rcc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/st,stm32mp25-rcc.h>
spi@40430000 {
compatible = "st,stm32mp25-ospi";
reg = <0x40430000 0x400>;
memory-region = <&mm_ospi1>;
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&hpdma 2 0x62 0x00003121 0x0>,
<&hpdma 2 0x42 0x00003112 0x0>;
dma-names = "tx", "rx";
clocks = <&scmi_clk CK_SCMI_OSPI1>;
resets = <&scmi_reset RST_SCMI_OSPI1>, <&scmi_reset RST_SCMI_OSPI1DLL>;
access-controllers = <&rifsc 74>;
power-domains = <&CLUSTER_PD>;
st,syscfg-dlyb = <&syscfg 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-rx-bus-width = <4>;
spi-max-frequency = <108000000>;
};
};
6 changes: 6 additions & 0 deletions Documentation/driver-api/infrastructure.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ Device Drivers Base
.. kernel-doc:: drivers/base/class.c
:export:

.. kernel-doc:: include/linux/device/faux.h
:internal:

.. kernel-doc:: drivers/base/faux.c
:export:

.. kernel-doc:: drivers/base/node.c
:internal:

Expand Down
Loading

0 comments on commit 5fac6c2

Please sign in to comment.