mbox series

[00/11] Add STM32MP25 support

Message ID 20230529162034.20481-1-alexandre.torgue@foss.st.com
Headers show
Series Add STM32MP25 support | expand

Message

Alexandre TORGUE May 29, 2023, 4:20 p.m. UTC
I'm pleased to announce extension of the STM32 MPU family with the addition of
the STM32MP25 Armv8 based SoCs.

STM32MP25 family is composed of 4 SoCs defined as following:

  -STM32MP251: common part composed of 1*Cortex-A35, common peripherals like
   SDMMC, UART, SPI, I2C, PCIe, USB3, parallel and DSI display, 1*ETH ...

  -STM32MP253: STM32MP251 + 1*Cortex-A35 (dual CPU), a second ETH, CAN-FD and
   LVDS display.

  -STM32MP255: STM32MP253 + GPU/AI and video encode/decode.
  -STM32MP257: STM32MP255 + ETH TSN switch (2+1 ports).

  A second diversity layer exists for security features/ A35 frequency:
  -STM32MP25xY, "Y" gives information:
    -Y = A means A35@1.2GHz + no cryp IP and no secure boot.
    -Y = C means A35@1.2GHz + cryp IP and secure boot.
    -Y = D means A35@1.5GHz + no cryp IP and no secure boot.
    -Y = F means A35@1.5GHz + cryp IP and secure boot.

This series adds the STM32MP257F EV1 board support. This board embeds a
STM32MP257FAI SoC, with 4GB of DDR4, TSN switch (2+1 ports), 2*USB typeA,
1*USB2 typeC, SNOR OctoSPI, mini PCIe, STPMIC2 for power distribution ...

Thanks
Alex

Alexandre Torgue (10):
  dt-bindings: pinctrl: stm32: support for stm32mp257 and additional
    packages
  pinctrl: stm32: add stm32mp257 pinctrl support
  dt-bindings: stm32: add st,stm32mp25 compatibles to the stm32 family
  arm64: introduce STM32 family on Armv8 architecture
  arm64: dts: st: introduce stm32mp25 SoCs family
  arm64: dts: st: introduce stm32mp25 pinctrl files
  dt-bindings: stm32: document stm32mp257f-ev1 board
  arm64: dts: st: add stm32mp257f-ev1 board support
  arm64: defconfig: enable ARCH_STM32 and STM32 serial driver
  MAINTAINERS: add entry for ARM/STM32 ARCHITECTURE

Patrick Delaunay (1):
  dt-bindings: stm32: add st,stm32mp25-syscfg compatible for syscon

 .../bindings/arm/stm32/st,stm32-syscon.yaml   |    1 +
 .../devicetree/bindings/arm/stm32/stm32.yaml  |   12 +
 .../bindings/pinctrl/st,stm32-pinctrl.yaml    |    4 +-
 MAINTAINERS                                   |    1 +
 arch/arm64/Kconfig.platforms                  |   14 +
 arch/arm64/boot/dts/Makefile                  |    1 +
 arch/arm64/boot/dts/st/Makefile               |    2 +
 arch/arm64/boot/dts/st/stm32mp25-pinctrl.dtsi |   38 +
 arch/arm64/boot/dts/st/stm32mp251.dtsi        |  279 ++
 arch/arm64/boot/dts/st/stm32mp253.dtsi        |   23 +
 arch/arm64/boot/dts/st/stm32mp255.dtsi        |    9 +
 arch/arm64/boot/dts/st/stm32mp257.dtsi        |    9 +
 arch/arm64/boot/dts/st/stm32mp257f-ev1.dts    |   50 +
 arch/arm64/boot/dts/st/stm32mp25xc.dtsi       |    8 +
 arch/arm64/boot/dts/st/stm32mp25xf.dtsi       |    8 +
 .../boot/dts/st/stm32mp25xxai-pinctrl.dtsi    |   83 +
 .../boot/dts/st/stm32mp25xxak-pinctrl.dtsi    |   71 +
 .../boot/dts/st/stm32mp25xxal-pinctrl.dtsi    |   71 +
 arch/arm64/configs/defconfig                  |    3 +
 drivers/pinctrl/stm32/Kconfig                 |    6 +
 drivers/pinctrl/stm32/Makefile                |    1 +
 drivers/pinctrl/stm32/pinctrl-stm32.h         |    3 +
 drivers/pinctrl/stm32/pinctrl-stm32mp257.c    | 2581 +++++++++++++++++
 include/dt-bindings/pinctrl/stm32-pinfunc.h   |    3 +
 24 files changed, 3280 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/st/Makefile
 create mode 100644 arch/arm64/boot/dts/st/stm32mp25-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp251.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp253.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp255.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp257.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
 create mode 100644 arch/arm64/boot/dts/st/stm32mp25xc.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp25xf.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp25xxai-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp25xxak-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp25xxal-pinctrl.dtsi
 create mode 100644 drivers/pinctrl/stm32/pinctrl-stm32mp257.c

Comments

Alexandre TORGUE May 30, 2023, 8:38 a.m. UTC | #1
Hi Conor

On 5/29/23 20:04, Conor Dooley wrote:
> On Mon, May 29, 2023 at 06:20:25PM +0200, Alexandre Torgue wrote:
>> Add stm32mp257 pinctrl support.
>> diff --git a/drivers/pinctrl/stm32/pinctrl-stm32.h b/drivers/pinctrl/stm32/pinctrl-stm32.h
>> index e0c31c4c8bca..5e5de92ddd58 100644
>> --- a/drivers/pinctrl/stm32/pinctrl-stm32.h
>> +++ b/drivers/pinctrl/stm32/pinctrl-stm32.h
>> @@ -24,6 +24,9 @@
>>   #define STM32MP_PKG_AB		BIT(1)
>>   #define STM32MP_PKG_AC		BIT(2)
>>   #define STM32MP_PKG_AD		BIT(3)
>> +#define STM32MP_PKG_AI		BIT(8)
>> +#define STM32MP_PKG_AK		BIT(10)
>> +#define STM32MP_PKG_AL		BIT(11)
> 
> Mainly out of curiosity, why have you go duplicate defines for these?

Mainly to fit with available packages for various STM32 MPU. Currently 
MP1 SoCs are available with packages AB/AC/AD and MP2 series with 
AI/AK/AL but in the future we could have package AB/AC/AD/AI available 
for a particular SoC and then I need to anticipate this case.

Cheers
Alex

> 
> Cheers,
> Conor.
Conor Dooley May 30, 2023, 8:56 a.m. UTC | #2
On Tue, May 30, 2023 at 10:38:30AM +0200, Alexandre TORGUE wrote:
> Hi Conor
> 
> On 5/29/23 20:04, Conor Dooley wrote:
> > On Mon, May 29, 2023 at 06:20:25PM +0200, Alexandre Torgue wrote:
> > > Add stm32mp257 pinctrl support.
> > > diff --git a/drivers/pinctrl/stm32/pinctrl-stm32.h b/drivers/pinctrl/stm32/pinctrl-stm32.h
> > > index e0c31c4c8bca..5e5de92ddd58 100644
> > > --- a/drivers/pinctrl/stm32/pinctrl-stm32.h
> > > +++ b/drivers/pinctrl/stm32/pinctrl-stm32.h
> > > @@ -24,6 +24,9 @@
> > >   #define STM32MP_PKG_AB		BIT(1)
> > >   #define STM32MP_PKG_AC		BIT(2)
> > >   #define STM32MP_PKG_AD		BIT(3)
> > > +#define STM32MP_PKG_AI		BIT(8)
> > > +#define STM32MP_PKG_AK		BIT(10)
> > > +#define STM32MP_PKG_AL		BIT(11)
> > 
> > Mainly out of curiosity, why have you go duplicate defines for these?
> 
> Mainly to fit with available packages for various STM32 MPU. Currently MP1
> SoCs are available with packages AB/AC/AD and MP2 series with AI/AK/AL but
> in the future we could have package AB/AC/AD/AI available for a particular
> SoC and then I need to anticipate this case.

Sorry, what I meant was "why have you got defines for these in this
header, when there is an existing set in
include/dt-bindings/pinctrl/stm32-pinfunc.h?".

Cheers,
Conor.
Alexandre TORGUE May 30, 2023, 12:08 p.m. UTC | #3
On 5/30/23 10:56, Conor Dooley wrote:
> On Tue, May 30, 2023 at 10:38:30AM +0200, Alexandre TORGUE wrote:
>> Hi Conor
>>
>> On 5/29/23 20:04, Conor Dooley wrote:
>>> On Mon, May 29, 2023 at 06:20:25PM +0200, Alexandre Torgue wrote:
>>>> Add stm32mp257 pinctrl support.
>>>> diff --git a/drivers/pinctrl/stm32/pinctrl-stm32.h b/drivers/pinctrl/stm32/pinctrl-stm32.h
>>>> index e0c31c4c8bca..5e5de92ddd58 100644
>>>> --- a/drivers/pinctrl/stm32/pinctrl-stm32.h
>>>> +++ b/drivers/pinctrl/stm32/pinctrl-stm32.h
>>>> @@ -24,6 +24,9 @@
>>>>    #define STM32MP_PKG_AB		BIT(1)
>>>>    #define STM32MP_PKG_AC		BIT(2)
>>>>    #define STM32MP_PKG_AD		BIT(3)
>>>> +#define STM32MP_PKG_AI		BIT(8)
>>>> +#define STM32MP_PKG_AK		BIT(10)
>>>> +#define STM32MP_PKG_AL		BIT(11)
>>>
>>> Mainly out of curiosity, why have you go duplicate defines for these?
>>
>> Mainly to fit with available packages for various STM32 MPU. Currently MP1
>> SoCs are available with packages AB/AC/AD and MP2 series with AI/AK/AL but
>> in the future we could have package AB/AC/AD/AI available for a particular
>> SoC and then I need to anticipate this case.
> 
> Sorry, what I meant was "why have you got defines for these in this
> header, when there is an existing set in
> include/dt-bindings/pinctrl/stm32-pinfunc.h?".

Ok, I see. To be honest I do it as we did in the past for STM32 MCU and 
MP1 products. We had this discussion maybe 5 or 6 years ago about the 
fact to include or not the "dt-bindings" file in the stm32 drivers. I 
don't remember exactly the rational behind our choice. It is something 
that we could improve for all our STM32 products. Sorry for this 
imprecise answer.

Alex


> 
> Cheers,
> Conor.
>
Linus Walleij May 30, 2023, 12:39 p.m. UTC | #4
On Mon, May 29, 2023 at 6:20 PM Alexandre Torgue
<alexandre.torgue@foss.st.com> wrote:

> Alexandre Torgue (10):
>   dt-bindings: pinctrl: stm32: support for stm32mp257 and additional
>     packages
>   pinctrl: stm32: add stm32mp257 pinctrl support

Can patch 1 & 2 be applied to the pinctrl tree separately?

Yours,
Linus Walleij
Alexandre TORGUE May 30, 2023, 1:32 p.m. UTC | #5
Hi Linus

On 5/30/23 14:39, Linus Walleij wrote:
> On Mon, May 29, 2023 at 6:20 PM Alexandre Torgue
> <alexandre.torgue@foss.st.com> wrote:
> 
>> Alexandre Torgue (10):
>>    dt-bindings: pinctrl: stm32: support for stm32mp257 and additional
>>      packages
>>    pinctrl: stm32: add stm32mp257 pinctrl support
> 
> Can patch 1 & 2 be applied to the pinctrl tree separately?

Yes please. I'll take others directly in my platform tree.

Thanks
Alex

> Yours,
> Linus Walleij