mbox series

[0/6] arm64: dts: imx8mm-kontron: Improvements and OSM board support

Message ID 20220713074118.14733-1-frieder@fris.de
Headers show
Series arm64: dts: imx8mm-kontron: Improvements and OSM board support | expand

Message

Frieder Schrempf July 13, 2022, 7:41 a.m. UTC
From: Frieder Schrempf <frieder.schrempf@kontron.de>

This set contains a few small improvements for the imx8mm-kontron devicetrees
(patch 1 to 4) and support for a new SoM (patch 5-6, including baseboard) that
complies to the Open Standard Module (OSM) 1.0 hardware specification, size S
(https://sget.org/standards/osm).

Frieder Schrempf (6):
  arm64: dts: imx8mm-kontron: Adjust board and SoM model strings
  arm64: dts: imx8mm-kontron: Use the VSELECT signal to switch SD card
    IO voltage
  arm64: dts: imx8mm-kontron: Remove low DDRC operating point
  arm64: dts: imx8mm-kontron: Use upper case PMIC regulator names
  arm64: dts: Add support for Kontron SL/BL i.MX8MM OSM-S
  dt-bindings: arm: fsl: Add Kontron BL i.MX8MM OSM-S board

 .../devicetree/bindings/arm/fsl.yaml          |   6 +
 arch/arm64/boot/dts/freescale/Makefile        |   1 +
 .../dts/freescale/imx8mm-kontron-n801x-s.dts  |   5 +-
 .../freescale/imx8mm-kontron-n801x-som.dtsi   |  30 +-
 .../dts/freescale/imx8mm-kontron-n802x-s.dts  | 377 ++++++++++++++++++
 .../freescale/imx8mm-kontron-n802x-som.dtsi   | 309 ++++++++++++++
 6 files changed, 709 insertions(+), 19 deletions(-)
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-kontron-n802x-s.dts
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-kontron-n802x-som.dtsi

Comments

Heiko Thiery July 13, 2022, 7:52 a.m. UTC | #1
Hi Frieder,

Am Mi., 13. Juli 2022 um 09:41 Uhr schrieb Frieder Schrempf <frieder@fris.de>:
>
> From: Frieder Schrempf <frieder.schrempf@kontron.de>
>
> Use upper case PMIC regulator names to comply with the bindings.
>
> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
> ---
>  .../freescale/imx8mm-kontron-n801x-som.dtsi   | 22 +++++++++----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
> index 2d0661cce89b..2e3d51bbf92e 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
> @@ -85,7 +85,7 @@ pca9450: pmic@25 {
>
>                 regulators {
>                         reg_vdd_soc: BUCK1 {
> -                               regulator-name = "buck1";
> +                               regulator-name = "BUCK1";

Wouldn't it be better to use the real signal or voltage rail names
used in the schematics?

Like it is done here as example:
https://elixir.bootlin.com/linux/v5.19-rc6/source/arch/arm64/boot/dts/freescale/imx8mn-evk.dts#L44

Or use a name that includes both information (signal + PMIC out):
https://elixir.bootlin.com/linux/v5.19-rc6/source/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi#L445

>                                 regulator-min-microvolt = <800000>;
>                                 regulator-max-microvolt = <850000>;
>                                 regulator-boot-on;
> @@ -96,7 +96,7 @@ reg_vdd_soc: BUCK1 {
>                         };
>
>                         reg_vdd_arm: BUCK2 {
> -                               regulator-name = "buck2";
> +                               regulator-name = "BUCK2";
>                                 regulator-min-microvolt = <850000>;
>                                 regulator-max-microvolt = <950000>;
>                                 regulator-boot-on;
> @@ -107,7 +107,7 @@ reg_vdd_arm: BUCK2 {
>                         };
>
>                         reg_vdd_dram: BUCK3 {
> -                               regulator-name = "buck3";
> +                               regulator-name = "BUCK3";
>                                 regulator-min-microvolt = <850000>;
>                                 regulator-max-microvolt = <950000>;
>                                 regulator-boot-on;
> @@ -115,7 +115,7 @@ reg_vdd_dram: BUCK3 {
>                         };
>
>                         reg_vdd_3v3: BUCK4 {
> -                               regulator-name = "buck4";
> +                               regulator-name = "BUCK4";
>                                 regulator-min-microvolt = <3300000>;
>                                 regulator-max-microvolt = <3300000>;
>                                 regulator-boot-on;
> @@ -123,7 +123,7 @@ reg_vdd_3v3: BUCK4 {
>                         };
>
>                         reg_vdd_1v8: BUCK5 {
> -                               regulator-name = "buck5";
> +                               regulator-name = "BUCK5";
>                                 regulator-min-microvolt = <1800000>;
>                                 regulator-max-microvolt = <1800000>;
>                                 regulator-boot-on;
> @@ -131,7 +131,7 @@ reg_vdd_1v8: BUCK5 {
>                         };
>
>                         reg_nvcc_dram: BUCK6 {
> -                               regulator-name = "buck6";
> +                               regulator-name = "BUCK6";
>                                 regulator-min-microvolt = <1100000>;
>                                 regulator-max-microvolt = <1100000>;
>                                 regulator-boot-on;
> @@ -139,7 +139,7 @@ reg_nvcc_dram: BUCK6 {
>                         };
>
>                         reg_nvcc_snvs: LDO1 {
> -                               regulator-name = "ldo1";
> +                               regulator-name = "LDO1";
>                                 regulator-min-microvolt = <1800000>;
>                                 regulator-max-microvolt = <1800000>;
>                                 regulator-boot-on;
> @@ -147,7 +147,7 @@ reg_nvcc_snvs: LDO1 {
>                         };
>
>                         reg_vdd_snvs: LDO2 {
> -                               regulator-name = "ldo2";
> +                               regulator-name = "LDO2";
>                                 regulator-min-microvolt = <800000>;
>                                 regulator-max-microvolt = <900000>;
>                                 regulator-boot-on;
> @@ -155,7 +155,7 @@ reg_vdd_snvs: LDO2 {
>                         };
>
>                         reg_vdda: LDO3 {
> -                               regulator-name = "ldo3";
> +                               regulator-name = "LDO3";
>                                 regulator-min-microvolt = <1800000>;
>                                 regulator-max-microvolt = <1800000>;
>                                 regulator-boot-on;
> @@ -163,7 +163,7 @@ reg_vdda: LDO3 {
>                         };
>
>                         reg_vdd_phy: LDO4 {
> -                               regulator-name = "ldo4";
> +                               regulator-name = "LDO4";
>                                 regulator-min-microvolt = <900000>;
>                                 regulator-max-microvolt = <900000>;
>                                 regulator-boot-on;
> @@ -171,7 +171,7 @@ reg_vdd_phy: LDO4 {
>                         };
>
>                         reg_nvcc_sd: LDO5 {
> -                               regulator-name = "ldo5";
> +                               regulator-name = "LDO5";
>                                 regulator-min-microvolt = <1800000>;
>                                 regulator-max-microvolt = <3300000>;
>                         };
> --
> 2.37.0
>
Frieder Schrempf July 13, 2022, 8:15 a.m. UTC | #2
Am 13.07.22 um 09:52 schrieb Heiko Thiery:
> Hi Frieder,
> 
> Am Mi., 13. Juli 2022 um 09:41 Uhr schrieb Frieder Schrempf <frieder@fris.de>:
>>
>> From: Frieder Schrempf <frieder.schrempf@kontron.de>
>>
>> Use upper case PMIC regulator names to comply with the bindings.
>>
>> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
>> ---
>>  .../freescale/imx8mm-kontron-n801x-som.dtsi   | 22 +++++++++----------
>>  1 file changed, 11 insertions(+), 11 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
>> index 2d0661cce89b..2e3d51bbf92e 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
>> +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
>> @@ -85,7 +85,7 @@ pca9450: pmic@25 {
>>
>>                 regulators {
>>                         reg_vdd_soc: BUCK1 {
>> -                               regulator-name = "buck1";
>> +                               regulator-name = "BUCK1";
> 
> Wouldn't it be better to use the real signal or voltage rail names
> used in the schematics?

Sounds like a good idea, thanks! I will try to include in the next
version of this patchset.
Frieder Schrempf July 13, 2022, 8:25 a.m. UTC | #3
Am 13.07.22 um 10:15 schrieb Frieder Schrempf:
> Am 13.07.22 um 09:52 schrieb Heiko Thiery:
>> Hi Frieder,
>>
>> Am Mi., 13. Juli 2022 um 09:41 Uhr schrieb Frieder Schrempf <frieder@fris.de>:
>>>
>>> From: Frieder Schrempf <frieder.schrempf@kontron.de>
>>>
>>> Use upper case PMIC regulator names to comply with the bindings.
>>>
>>> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
>>> ---
>>>  .../freescale/imx8mm-kontron-n801x-som.dtsi   | 22 +++++++++----------
>>>  1 file changed, 11 insertions(+), 11 deletions(-)
>>>
>>> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
>>> index 2d0661cce89b..2e3d51bbf92e 100644
>>> --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
>>> +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
>>> @@ -85,7 +85,7 @@ pca9450: pmic@25 {
>>>
>>>                 regulators {
>>>                         reg_vdd_soc: BUCK1 {
>>> -                               regulator-name = "buck1";
>>> +                               regulator-name = "BUCK1";
>>
>> Wouldn't it be better to use the real signal or voltage rail names
>> used in the schematics?
> 
> Sounds like a good idea, thanks! I will try to include in the next
> version of this patchset.

On the other hand, the bindings stipulate that the regulator-names
should be "^BUCK[1-6]$" and "^LDO[1-5]$". But I admit these names are
not really useful and maybe the bindings should be changed to allow
arbitrary names?
Marco Felsch July 13, 2022, 8:36 a.m. UTC | #4
Hi Frieder,

On 22-07-13, Frieder Schrempf wrote:


> +	aliases {
> +		ethernet1 = &usbnet;
> +	};

Out of curiosity, why do you prefer usbnet instead of the fec?

Regards,
  Marco
Frieder Schrempf July 13, 2022, 8:44 a.m. UTC | #5
Hi Marco,

Am 13.07.22 um 10:36 schrieb Marco Felsch:
> Hi Frieder,
> 
> On 22-07-13, Frieder Schrempf wrote:
> 
> 
>> +	aliases {
>> +		ethernet1 = &usbnet;
>> +	};
> 
> Out of curiosity, why do you prefer usbnet instead of the fec?

We don't. In imx8mm.dtsi there is:

ethernet0 = &fec1;

We only assign the alias for the second ethernet, which is the USB adapter.

Best regards
Frieder
Marco Felsch July 13, 2022, 8:46 a.m. UTC | #6
On 22-07-13, Frieder Schrempf wrote:
> Hi Marco,
> 
> Am 13.07.22 um 10:36 schrieb Marco Felsch:
> > Hi Frieder,
> > 
> > On 22-07-13, Frieder Schrempf wrote:
> > 
> > 
> >> +	aliases {
> >> +		ethernet1 = &usbnet;
> >> +	};
> > 
> > Out of curiosity, why do you prefer usbnet instead of the fec?
> 
> We don't. In imx8mm.dtsi there is:
> 
> ethernet0 = &fec1;
> 
> We only assign the alias for the second ethernet, which is the USB adapter.

Ah.. I see, thanks :)

Regards,
  Marco
Heiko Thiery July 14, 2022, 2:53 p.m. UTC | #7
Hi,

Am Mi., 13. Juli 2022 um 09:41 Uhr schrieb Frieder Schrempf <frieder@fris.de>:
>
> From: Frieder Schrempf <frieder.schrempf@kontron.de>
>
> It turns out that it is not necessary to declare the VSELECT signal as
> GPIO and let the PMIC driver set it to a fixed high level. This switches
> the voltage between 3.3V and 1.8V by setting the PMIC register for LDO5
> accordingly.
>
> Instead we can do it like other boards already do and simply mux the
> VSELECT signal of the USDHC interface to the pin. This makes sure that
> the correct voltage is selected by setting the PMIC's SD_VSEL input
> to high or low accordingly.
>
> Reported-by: Heiko Thiery <heiko.thiery@gmail.com>
> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>

Reviewed-by: Heiko Thiery <heiko.thiery@gmail.com>

> ---
>  arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts    | 3 +++
>  arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi | 2 --
>  2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts
> index cb8102bb8db5..bc46426ad8f6 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts
> @@ -321,6 +321,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d0
>                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d0
>                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d0
>                         MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12                0x019
> +                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
>                 >;
>         };
>
> @@ -333,6 +334,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4
>                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d4
>                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d4
>                         MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12                0x019
> +                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
>                 >;
>         };
>
> @@ -345,6 +347,7 @@ MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d6
>                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d6
>                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d6
>                         MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12                0x019
> +                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
>                 >;
>         };
>  };
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
> index b6d90d646a5f..77c074b491a6 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
> @@ -86,7 +86,6 @@ pca9450: pmic@25 {
>                 pinctrl-0 = <&pinctrl_pmic>;
>                 interrupt-parent = <&gpio1>;
>                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> -               sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
>
>                 regulators {
>                         reg_vdd_soc: BUCK1 {
> @@ -229,7 +228,6 @@ MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA                      0x400001c3
>         pinctrl_pmic: pmicgrp {
>                 fsl,pins = <
>                         MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0               0x141
> -                       MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4               0x141
>                 >;
>         };
>
> --
> 2.37.0
>
Fabio Estevam July 14, 2022, 3:53 p.m. UTC | #8
Hi Frieder,

On Wed, Jul 13, 2022 at 4:41 AM Frieder Schrempf <frieder@fris.de> wrote:
>
> From: Frieder Schrempf <frieder.schrempf@kontron.de>
>
> The official naming includes "SL" (SoM-Line) or "BL" (Board-Line).
> The legacy identifiers are kept in brackets and are still used in
> file names and compatible strings.
>
> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>

The series looks good, but I cannot find patch 6/6 in my Inbox, nor in:
https://lore.kernel.org/linux-arm-kernel/20220713074118.14733-1-frieder@fris.de/
Frieder Schrempf July 14, 2022, 4:04 p.m. UTC | #9
Am 14.07.22 um 17:53 schrieb Fabio Estevam:
> Hi Frieder,
> 
> On Wed, Jul 13, 2022 at 4:41 AM Frieder Schrempf <frieder@fris.de> wrote:
>>
>> From: Frieder Schrempf <frieder.schrempf@kontron.de>
>>
>> The official naming includes "SL" (SoM-Line) or "BL" (Board-Line).
>> The legacy identifiers are kept in brackets and are still used in
>> file names and compatible strings.
>>
>> Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
> 
> The series looks good, but I cannot find patch 6/6 in my Inbox, nor in:
> https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Flinux-arm-kernel%2F20220713074118.14733-1-frieder%40fris.de%2F&amp;data=05%7C01%7Cfrieder.schrempf%40kontron.de%7C709a770b51c5406920bb08da65b0fbe4%7C8c9d3c973fd941c8a2b1646f3942daf1%7C0%7C0%7C637934108060565672%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=X2I7oQ9P1nDjB9VIGImp6G5%2F92u9b3dkLv1EQfKCjwk%3D&amp;reserved=0

As patch 6 only covers the bindings, get_maintainer.pl didn't add you or
the linux-arm-kernel list on CC. You can find the patch on the
devicetree list or on the devicetree patchwork:
https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20220713074118.14733-7-frieder@fris.de/.

I will add you to the recipients for the next iteration.