mbox series

[v3,0/9] nvmem: sfp: binding updates and additions

Message ID 20220428181703.2194171-1-sean.anderson@seco.com
Headers show
Series nvmem: sfp: binding updates and additions | expand

Message

Sean Anderson April 28, 2022, 6:16 p.m. UTC
This adds several properties to the Layerscape Security Fuse Processor
(SFP) necessary for writing. Although the Linux driver does not use
these bindings, I plan to use them in U-Boot [1]. It also adds a new
compatibles for Trust Architecture (TA) 2.1 devices. In addition, it
also adds an SFP binding for all TA 2.1 and 3.0 devices.

I would like to get this series merged for 5.18. As noted in patch 2,
making the clock property mandatory is not an ABI break, but if this is
not applied then it would become an ABI break. The absolute minimum
patches to apply for this would be patches 2 and 5. The rest (including
the regmap changes) could be deferred if necessary.

[1] https://lore.kernel.org/u-boot/7c8e206a-cd40-2a77-6282-7f4bead2b13a@seco.com/T/#m591f8425b6f096ab3d54e6f7bd258e41cfa4c43b

Changes in v3:
- Update commit message to note that this binding has not yet been
  present in a relase, so it is OK to make otherwise breaking changes.

Changes in v2:
- Mention "regulator" in the description for ta-prog-sfp-supply
- Convert sfp driver to use regmap
- Fix various typos in commit messages

Sean Anderson (9):
  dt-bindings: nvmem: sfp: Fix typo
  dt-bindings: nvmem: sfp: Add clock properties
  dt-bindings: nvmem: sfp: Add TA_PROG_SFP supply
  dt-bindings: nvmem: sfp: Add compatible binding for TA 2.1 SFPs
  arm64: dts: ls1028a: Update SFP binding to include clock
  ARM: dts: layerscape: Add SFP binding for TA 2.1 devices
  ARM: dts: Add SFP binding for TA 3.0 devices
  nvmem: sfp: Use regmap
  nvmem: sfp: Add support for TA 2.1 devices

 .../bindings/nvmem/fsl,layerscape-sfp.yaml    | 30 ++++++++++++++--
 arch/arm/boot/dts/ls1021a.dtsi                |  7 ++++
 .../arm64/boot/dts/freescale/fsl-ls1012a.dtsi |  8 +++++
 .../arm64/boot/dts/freescale/fsl-ls1028a.dtsi |  5 ++-
 .../arm64/boot/dts/freescale/fsl-ls1043a.dtsi |  8 +++++
 .../arm64/boot/dts/freescale/fsl-ls1046a.dtsi |  8 +++++
 .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  8 +++++
 .../arm64/boot/dts/freescale/fsl-ls208xa.dtsi |  8 +++++
 .../arm64/boot/dts/freescale/fsl-lx2160a.dtsi |  8 +++++
 drivers/nvmem/Kconfig                         |  1 +
 drivers/nvmem/layerscape-sfp.c                | 36 ++++++++++++++-----
 11 files changed, 115 insertions(+), 12 deletions(-)

Comments

Srinivas Kandagatla April 29, 2022, 3:56 p.m. UTC | #1
On 28/04/2022 19:16, Sean Anderson wrote:
> This adds several properties to the Layerscape Security Fuse Processor
> (SFP) necessary for writing. Although the Linux driver does not use
> these bindings, I plan to use them in U-Boot [1]. It also adds a new
> compatibles for Trust Architecture (TA) 2.1 devices. In addition, it
> also adds an SFP binding for all TA 2.1 and 3.0 devices.
> 
> I would like to get this series merged for 5.18. As noted in patch 2,
> making the clock property mandatory is not an ABI break, but if this is
> not applied then it would become an ABI break. The absolute minimum
> patches to apply for this would be patches 2 and 5. The rest (including
> the regmap changes) could be deferred if necessary.
> 
> [1] https://lore.kernel.org/u-boot/7c8e206a-cd40-2a77-6282-7f4bead2b13a@seco.com/T/#m591f8425b6f096ab3d54e6f7bd258e41cfa4c43b
> 
> Changes in v3:
> - Update commit message to note that this binding has not yet been
>    present in a relase, so it is OK to make otherwise breaking changes.
> 
> Changes in v2:
> - Mention "regulator" in the description for ta-prog-sfp-supply
> - Convert sfp driver to use regmap
> - Fix various typos in commit messages
> 
> Sean Anderson (9):
>    dt-bindings: nvmem: sfp: Fix typo
>    dt-bindings: nvmem: sfp: Add clock properties
>    dt-bindings: nvmem: sfp: Add TA_PROG_SFP supply
>    dt-bindings: nvmem: sfp: Add compatible binding for TA 2.1 SFPs
>    arm64: dts: ls1028a: Update SFP binding to include clock
>    ARM: dts: layerscape: Add SFP binding for TA 2.1 devices
>    ARM: dts: Add SFP binding for TA 3.0 devices
>    nvmem: sfp: Use regmap
>    nvmem: sfp: Add support for TA 2.1 devices
> 

I have applied all the patches except 5/9, 6/9, and 7/9 dts patches 
which need to go via dts maintainer tree.

--srini

>   .../bindings/nvmem/fsl,layerscape-sfp.yaml    | 30 ++++++++++++++--
>   arch/arm/boot/dts/ls1021a.dtsi                |  7 ++++
>   .../arm64/boot/dts/freescale/fsl-ls1012a.dtsi |  8 +++++
>   .../arm64/boot/dts/freescale/fsl-ls1028a.dtsi |  5 ++-
>   .../arm64/boot/dts/freescale/fsl-ls1043a.dtsi |  8 +++++
>   .../arm64/boot/dts/freescale/fsl-ls1046a.dtsi |  8 +++++
>   .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  8 +++++
>   .../arm64/boot/dts/freescale/fsl-ls208xa.dtsi |  8 +++++
>   .../arm64/boot/dts/freescale/fsl-lx2160a.dtsi |  8 +++++
>   drivers/nvmem/Kconfig                         |  1 +
>   drivers/nvmem/layerscape-sfp.c                | 36 ++++++++++++++-----
>   11 files changed, 115 insertions(+), 12 deletions(-)
>
Michael Walle May 3, 2022, 1:43 p.m. UTC | #2
Am 2022-04-29 17:56, schrieb Srinivas Kandagatla:
> On 28/04/2022 19:16, Sean Anderson wrote:
>> This adds several properties to the Layerscape Security Fuse Processor
>> (SFP) necessary for writing. Although the Linux driver does not use
>> these bindings, I plan to use them in U-Boot [1]. It also adds a new
>> compatibles for Trust Architecture (TA) 2.1 devices. In addition, it
>> also adds an SFP binding for all TA 2.1 and 3.0 devices.
>> 
>> I would like to get this series merged for 5.18. As noted in patch 2,
>> making the clock property mandatory is not an ABI break, but if this 
>> is
>> not applied then it would become an ABI break. The absolute minimum
>> patches to apply for this would be patches 2 and 5. The rest 
>> (including
>> the regmap changes) could be deferred if necessary.
>> 
>> [1] 
>> https://lore.kernel.org/u-boot/7c8e206a-cd40-2a77-6282-7f4bead2b13a@seco.com/T/#m591f8425b6f096ab3d54e6f7bd258e41cfa4c43b
>> 
>> Changes in v3:
>> - Update commit message to note that this binding has not yet been
>>    present in a relase, so it is OK to make otherwise breaking 
>> changes.
>> 
>> Changes in v2:
>> - Mention "regulator" in the description for ta-prog-sfp-supply
>> - Convert sfp driver to use regmap
>> - Fix various typos in commit messages
>> 
>> Sean Anderson (9):
>>    dt-bindings: nvmem: sfp: Fix typo
>>    dt-bindings: nvmem: sfp: Add clock properties
>>    dt-bindings: nvmem: sfp: Add TA_PROG_SFP supply
>>    dt-bindings: nvmem: sfp: Add compatible binding for TA 2.1 SFPs
>>    arm64: dts: ls1028a: Update SFP binding to include clock
>>    ARM: dts: layerscape: Add SFP binding for TA 2.1 devices
>>    ARM: dts: Add SFP binding for TA 3.0 devices
>>    nvmem: sfp: Use regmap
>>    nvmem: sfp: Add support for TA 2.1 devices
>> 
> 
> I have applied all the patches except 5/9, 6/9, and 7/9 dts patches
> which need to go via dts maintainer tree.

Ahh. At least the device tree binding change (and the device tree
changes itself) should be applied as fixes for the 5.18 release,
so we don't have any conflicting descriptions. My fixes tag was never
picked up, unfortunately:
https://lore.kernel.org/linux-devicetree/4a45db184fbadc278624571dfbeb5004@walle.cc/

Srinivas, I've seen you picked it up into your for-next branch.
Can we fix that?

I'd guess the layerscape device tree change also need a Fixes: tag.

-michael
Michael Walle May 3, 2022, 1:47 p.m. UTC | #3
Am 2022-04-28 20:16, schrieb Sean Anderson:
> The clocks property is now mandatory. Add it.
> 
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> Reviewed-by: Michael Walle <michael@walle.cc>

Fixes: eba5bea8f37f ("arm64: dts: ls1028a: add efuse node")
Michael Walle May 9, 2022, 8:28 a.m. UTC | #4
Am 2022-05-03 15:43, schrieb Michael Walle:
> Am 2022-04-29 17:56, schrieb Srinivas Kandagatla:
>> On 28/04/2022 19:16, Sean Anderson wrote:
>>> This adds several properties to the Layerscape Security Fuse 
>>> Processor
>>> (SFP) necessary for writing. Although the Linux driver does not use
>>> these bindings, I plan to use them in U-Boot [1]. It also adds a new
>>> compatibles for Trust Architecture (TA) 2.1 devices. In addition, it
>>> also adds an SFP binding for all TA 2.1 and 3.0 devices.
>>> 
>>> I would like to get this series merged for 5.18. As noted in patch 2,
>>> making the clock property mandatory is not an ABI break, but if this 
>>> is
>>> not applied then it would become an ABI break. The absolute minimum
>>> patches to apply for this would be patches 2 and 5. The rest 
>>> (including
>>> the regmap changes) could be deferred if necessary.
>>> 
>>> [1] 
>>> https://lore.kernel.org/u-boot/7c8e206a-cd40-2a77-6282-7f4bead2b13a@seco.com/T/#m591f8425b6f096ab3d54e6f7bd258e41cfa4c43b
>>> 
>>> Changes in v3:
>>> - Update commit message to note that this binding has not yet been
>>>    present in a relase, so it is OK to make otherwise breaking 
>>> changes.
>>> 
>>> Changes in v2:
>>> - Mention "regulator" in the description for ta-prog-sfp-supply
>>> - Convert sfp driver to use regmap
>>> - Fix various typos in commit messages
>>> 
>>> Sean Anderson (9):
>>>    dt-bindings: nvmem: sfp: Fix typo
>>>    dt-bindings: nvmem: sfp: Add clock properties
>>>    dt-bindings: nvmem: sfp: Add TA_PROG_SFP supply
>>>    dt-bindings: nvmem: sfp: Add compatible binding for TA 2.1 SFPs
>>>    arm64: dts: ls1028a: Update SFP binding to include clock
>>>    ARM: dts: layerscape: Add SFP binding for TA 2.1 devices
>>>    ARM: dts: Add SFP binding for TA 3.0 devices
>>>    nvmem: sfp: Use regmap
>>>    nvmem: sfp: Add support for TA 2.1 devices
>>> 
>> 
>> I have applied all the patches except 5/9, 6/9, and 7/9 dts patches
>> which need to go via dts maintainer tree.
> 
> Ahh. At least the device tree binding change (and the device tree
> changes itself) should be applied as fixes for the 5.18 release,
> so we don't have any conflicting descriptions. My fixes tag was never
> picked up, unfortunately:
> https://lore.kernel.org/linux-devicetree/4a45db184fbadc278624571dfbeb5004@walle.cc/
> 
> Srinivas, I've seen you picked it up into your for-next branch.
> Can we fix that?
> 
> I'd guess the layerscape device tree change also need a Fixes: tag.

Ping. We are now -rc7 :/

-michael
Shawn Guo June 29, 2022, 1:32 p.m. UTC | #5
On Tue, May 03, 2022 at 03:47:51PM +0200, Michael Walle wrote:
> Am 2022-04-28 20:16, schrieb Sean Anderson:
> > The clocks property is now mandatory. Add it.
> > 
> > Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> > Reviewed-by: Michael Walle <michael@walle.cc>
> 
> Fixes: eba5bea8f37f ("arm64: dts: ls1028a: add efuse node")

Applied, thanks!
Shawn Guo June 29, 2022, 1:34 p.m. UTC | #6
On Thu, Apr 28, 2022 at 02:17:00PM -0400, Sean Anderson wrote:
> This adds an appropriate SFP binding for Trust Architecture 2.1 devices.
> 
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> ---
> 
> (no changes since v1)
> 
>  arch/arm/boot/dts/ls1021a.dtsi                 | 7 +++++++

Separate patches for arm and arm64 DTS, please.

Also prefix arm patches like 'ARM: dts: ...', while 'arm64: dts: ...'
for arm64 ones.

Shawn

>  arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 8 ++++++++
>  arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 8 ++++++++
>  arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 8 ++++++++
>  4 files changed, 31 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
> index 2e69d6eab4d1..c1e94a317cba 100644
> --- a/arch/arm/boot/dts/ls1021a.dtsi
> +++ b/arch/arm/boot/dts/ls1021a.dtsi
> @@ -129,6 +129,13 @@ ifc: ifc@1530000 {
>  			status = "disabled";
>  		};
>  
> +		sfp: efuse@1e80000 {
> +			compatible = "fsl,ls1021a-sfp";
> +			reg = <0x0 0x1e80000 0x0 0x10000>;
> +			clocks = <&clockgen 4 3>;
> +			clock-names = "sfp";
> +		};
> +
>  		dcfg: dcfg@1ee0000 {
>  			compatible = "fsl,ls1021a-dcfg", "syscon";
>  			reg = <0x0 0x1ee0000 0x0 0x1000>;
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
> index 50a72cda4727..47ce525e0a72 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
> @@ -271,6 +271,14 @@ rtic_d: rtic-d@60 {
>  			};
>  		};
>  
> +		sfp: efuse@1e80000 {
> +			compatible = "fsl,ls1021a-sfp";
> +			reg = <0x0 0x1e80000 0x0 0x10000>;
> +			clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
> +					    QORIQ_CLK_PLL_DIV(4)>;
> +			clock-names = "sfp";
> +		};
> +
>  		sec_mon: sec_mon@1e90000 {
>  			compatible = "fsl,sec-v5.4-mon", "fsl,sec-v5.0-mon",
>  				     "fsl,sec-v4.0-mon";
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
> index 35d1939e690b..b0ab0b19de7e 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
> @@ -383,6 +383,14 @@ sec_jr3: jr@40000 {
>  			};
>  		};
>  
> +		sfp: efuse@1e80000 {
> +			compatible = "fsl,ls1021a-sfp";
> +			reg = <0x0 0x1e80000 0x0 0x10000>;
> +			clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
> +					    QORIQ_CLK_PLL_DIV(4)>;
> +			clock-names = "sfp";
> +		};
> +
>  		dcfg: dcfg@1ee0000 {
>  			compatible = "fsl,ls1043a-dcfg", "syscon";
>  			reg = <0x0 0x1ee0000 0x0 0x10000>;
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
> index 4e7bd04d9798..c30056afc02a 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
> @@ -413,6 +413,14 @@ bportals: bman-portals@508000000 {
>  			ranges = <0x0 0x5 0x08000000 0x8000000>;
>  		};
>  
> +		sfp: efuse@1e80000 {
> +			compatible = "fsl,ls1021a-sfp";
> +			reg = <0x0 0x1e80000 0x0 0x10000>;
> +			clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
> +					    QORIQ_CLK_PLL_DIV(4)>;
> +			clock-names = "sfp";
> +		};
> +
>  		dcfg: dcfg@1ee0000 {
>  			compatible = "fsl,ls1046a-dcfg", "syscon";
>  			reg = <0x0 0x1ee0000 0x0 0x1000>;
> -- 
> 2.35.1.1320.gc452695387.dirty
>