The input clock and number of clock provider cells are not required for
the PMIC to operate. They are needed only for the optional bd718x7
clock driver.
Add also clock-output-names as driver takes use of it.
This fixes dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b: 'clocks' is a required property
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b: '#clock-cells' is a required property
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../devicetree/bindings/mfd/rohm,bd71847-pmic.yaml | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
index 77bcca2d414f..5d531051a153 100644
--- a/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
+++ b/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
@@ -38,6 +38,9 @@ properties:
"#clock-cells":
const: 0
+ clock-output-names:
+ maxItems: 1
+
# The BD71847 abd BD71850 support two different HW states as reset target
# states. States are called as SNVS and READY. At READY state all the PMIC
# power outputs go down and OTP is reload. At the SNVS state all other logic
@@ -116,12 +119,14 @@ required:
- compatible
- reg
- interrupts
- - clocks
- - "#clock-cells"
- regulators
additionalProperties: false
+dependencies:
+ '#clock-cells': [clocks]
+ clocks: ['#clock-cells']
+
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
--
2.17.1
Driver requires different amount of clocks for different SoCs. Describe
these requirements properly to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml: nand-controller@33002000: clock-names:1: 'gpmi_apb' was expected
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../devicetree/bindings/mtd/gpmi-nand.yaml | 76 +++++++++++++++----
1 file changed, 61 insertions(+), 15 deletions(-)
diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml b/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
index 28ff8c581837..9d764e654e1d 100644
--- a/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
+++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
@@ -9,9 +9,6 @@ title: Freescale General-Purpose Media Interface (GPMI) binding
maintainers:
- Han Xu <[email protected]>
-allOf:
- - $ref: "nand-controller.yaml"
-
description: |
The GPMI nand controller provides an interface to control the NAND
flash chips. The device tree may optionally contain sub-nodes
@@ -58,22 +55,10 @@ properties:
clocks:
minItems: 1
maxItems: 5
- items:
- - description: SoC gpmi io clock
- - description: SoC gpmi apb clock
- - description: SoC gpmi bch clock
- - description: SoC gpmi bch apb clock
- - description: SoC per1 bch clock
clock-names:
minItems: 1
maxItems: 5
- items:
- - const: gpmi_io
- - const: gpmi_apb
- - const: gpmi_bch
- - const: gpmi_bch_apb
- - const: per1_bch
fsl,use-minimum-ecc:
type: boolean
@@ -107,6 +92,67 @@ required:
unevaluatedProperties: false
+allOf:
+ - $ref: "nand-controller.yaml"
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,imx23-gpmi-nand
+ - fsl,imx28-gpmi-nand
+ then:
+ properties:
+ clocks:
+ items:
+ - description: SoC gpmi io clock
+ clock-names:
+ items:
+ - const: gpmi_io
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,imx6q-gpmi-nand
+ - fsl,imx6sx-gpmi-nand
+ then:
+ properties:
+ clocks:
+ items:
+ - description: SoC gpmi io clock
+ - description: SoC gpmi apb clock
+ - description: SoC gpmi bch clock
+ - description: SoC gpmi bch apb clock
+ - description: SoC per1 bch clock
+ clock-names:
+ items:
+ - const: gpmi_io
+ - const: gpmi_apb
+ - const: gpmi_bch
+ - const: gpmi_bch_apb
+ - const: per1_bch
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: fsl,imx7d-gpmi-nand
+ then:
+ properties:
+ clocks:
+ items:
+ - description: SoC gpmi io clock
+ - description: SoC gpmi bch apb clock
+ clock-names:
+ minItems: 2
+ maxItems: 2
+ items:
+ - const: gpmi_io
+ - const: gpmi_bch_apb
+
examples:
- |
nand-controller@8000c000 {
--
2.17.1
Device tree schema expects regulator names to be lowercase. This fixes
dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b: regulators:LDO1:regulator-name:0: 'LDO1' does not match '^ldo[1-6]$'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22 +++++++++----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
index a1e5483dbbbe..299caed5d46e 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
@@ -60,7 +60,7 @@
regulators {
buck1_reg: BUCK1 {
- regulator-name = "BUCK1";
+ regulator-name = "buck1";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
regulator-boot-on;
@@ -69,7 +69,7 @@
};
buck2_reg: BUCK2 {
- regulator-name = "BUCK2";
+ regulator-name = "buck2";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1300000>;
regulator-boot-on;
@@ -79,14 +79,14 @@
buck3_reg: BUCK3 {
// BUCK5 in datasheet
- regulator-name = "BUCK3";
+ regulator-name = "buck3";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1350000>;
};
buck4_reg: BUCK4 {
// BUCK6 in datasheet
- regulator-name = "BUCK4";
+ regulator-name = "buck4";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
@@ -95,7 +95,7 @@
buck5_reg: BUCK5 {
// BUCK7 in datasheet
- regulator-name = "BUCK5";
+ regulator-name = "buck5";
regulator-min-microvolt = <1605000>;
regulator-max-microvolt = <1995000>;
regulator-boot-on;
@@ -104,7 +104,7 @@
buck6_reg: BUCK6 {
// BUCK8 in datasheet
- regulator-name = "BUCK6";
+ regulator-name = "buck6";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1400000>;
regulator-boot-on;
@@ -112,7 +112,7 @@
};
ldo1_reg: LDO1 {
- regulator-name = "LDO1";
+ regulator-name = "ldo1";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
@@ -120,7 +120,7 @@
};
ldo2_reg: LDO2 {
- regulator-name = "LDO2";
+ regulator-name = "ldo2";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <900000>;
regulator-boot-on;
@@ -128,7 +128,7 @@
};
ldo3_reg: LDO3 {
- regulator-name = "LDO3";
+ regulator-name = "ldo3";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
@@ -136,7 +136,7 @@
};
ldo4_reg: LDO4 {
- regulator-name = "LDO4";
+ regulator-name = "ldo4";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
@@ -144,7 +144,7 @@
};
ldo6_reg: LDO6 {
- regulator-name = "LDO6";
+ regulator-name = "ldo6";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
--
2.17.1
Since the "spi-cs-high" property is not present, the SPI chip select pin
polarity is active low.
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
index bf0859f1e1fa..5b5af8b381df 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
@@ -70,7 +70,7 @@
&ecspi2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_espi2>;
- cs-gpios = <&gpio5 9 0>;
+ cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
status = "okay";
eeprom@0 {
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix. This fixes dtbs_check warnings like:
pinctrl@30330000: 'pcal6414-gpio', 'pmicirq', 'usdhc1grp100mhz', 'usdhc1grp200mhz', 'usdhc1grpgpio',
'usdhc2grp100mhz', 'usdhc2grp200mhz', 'usdhc2grpgpio', 'usdhc3grp100mhz', 'usdhc3grp200mhz'
do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../boot/dts/freescale/imx8mm-beacon-baseboard.dtsi | 8 ++++----
arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi | 12 ++++++------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
index 5b5af8b381df..d6b9dedd168f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
@@ -210,7 +210,7 @@
>;
};
- pinctrl_pcal6414: pcal6414-gpio {
+ pinctrl_pcal6414: pcal6414-gpiogrp {
fsl,pins = <
MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x19
>;
@@ -240,7 +240,7 @@
>;
};
- pinctrl_usdhc2_gpio: usdhc2grpgpio {
+ pinctrl_usdhc2_gpio: usdhc2gpiogrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x41
MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
@@ -259,7 +259,7 @@
>;
};
- pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
@@ -271,7 +271,7 @@
>;
};
- pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
index 620a124dfb5f..502faf6144b0 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
@@ -290,7 +290,7 @@
>;
};
- pinctrl_pmic: pmicirq {
+ pinctrl_pmic: pmicirqgrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41
>;
@@ -309,7 +309,7 @@
>;
};
- pinctrl_usdhc1_gpio: usdhc1grpgpio {
+ pinctrl_usdhc1_gpio: usdhc1gpiogrp {
fsl,pins = <
MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10 0x41
>;
@@ -326,7 +326,7 @@
>;
};
- pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+ pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x194
MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d4
@@ -337,7 +337,7 @@
>;
};
- pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+ pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK 0x196
MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d6
@@ -364,7 +364,7 @@
>;
};
- pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+ pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4
@@ -380,7 +380,7 @@
>;
};
- pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+ pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6
--
2.17.1
The ROHM BD71847 PMIC has a 32.768 kHz clock. Adding necessary parent
allows to probe the bd718x7 clock driver fixing boot errors:
bd718xx-clk bd71847-clk.1.auto: No parent clk found
bd718xx-clk: probe of bd71847-clk.1.auto failed with error -22
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
index 3cb8b6bcb657..0115f07bbc9d 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
@@ -149,6 +149,10 @@
interrupts = <3 GPIO_ACTIVE_LOW>;
rohm,reset-snvs-powered;
+ #clock-cells = <0>;
+ clocks = <&osc_32k 0>;
+ clock-output-names = "clk-32k-out";
+
regulators {
buck1_reg: BUCK1 {
regulator-name = "buck1";
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
index 0115f07bbc9d..207dc8de3145 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dts
@@ -423,13 +423,13 @@
>;
};
- pinctrl_pmic: pmicirq {
+ pinctrl_pmic: pmicirqgrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41
>;
};
- pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc {
+ pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
>;
@@ -457,7 +457,7 @@
>;
};
- pinctrl_usdhc2_gpio: usdhc2grpgpio {
+ pinctrl_usdhc2_gpio: usdhc2gpiogrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x1c4
>;
@@ -475,7 +475,7 @@
>;
};
- pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
@@ -487,7 +487,7 @@
>;
};
- pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
@@ -515,7 +515,7 @@
>;
};
- pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+ pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4
@@ -531,7 +531,7 @@
>;
};
- pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+ pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
fsl,pins = <
MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196
MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
index 299caed5d46e..8f7155716c84 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
@@ -155,7 +155,7 @@
};
&iomuxc {
- pinctrl_pmic: pmicirq {
+ pinctrl_pmic: pmicirqgrp {
fsl,pins = <
MX8MN_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41
>;
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
index 6900ac274f5b..377591a0e6e9 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -734,7 +734,7 @@
>;
};
- pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+ pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d
MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd
@@ -751,7 +751,7 @@
>;
};
- pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+ pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f
MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf
@@ -768,13 +768,13 @@
>;
};
- pinctrl_usdhc2_pwr: usdhc2grppwr {
+ pinctrl_usdhc2_pwr: usdhc2pwrgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
>;
};
- pinctrl_usdhc2_gpio: usdhc2grpgpio {
+ pinctrl_usdhc2_gpio: usdhc2gpiogrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_WP_GPIO2_IO20 0x80 /* WIFI_WAKE */
>;
@@ -791,7 +791,7 @@
>;
};
- pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd
@@ -802,7 +802,7 @@
>;
};
- pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcf
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts b/arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts
index 59da96b7143f..f4d5748a7bd6 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts
@@ -297,7 +297,7 @@
>;
};
- pinctrl_pmic: pmicirq {
+ pinctrl_pmic: pmicirqgrp {
fsl,pins = <
MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41
>;
@@ -335,7 +335,7 @@
>;
};
- pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+ pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x85
MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc5
@@ -351,7 +351,7 @@
>;
};
- pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+ pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x87
MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc7
@@ -367,7 +367,7 @@
>;
};
- pinctrl_usdhc2_gpio: usdhc2grpgpio {
+ pinctrl_usdhc2_gpio: usdhc2gpiogrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41
>;
@@ -385,7 +385,7 @@
>;
};
- pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x85
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc5
@@ -397,7 +397,7 @@
>;
};
- pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x87
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc7
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mq-sr-som.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-sr-som.dtsi b/arch/arm64/boot/dts/freescale/imx8mq-sr-som.dtsi
index 404c46671b96..0187890a90c5 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-sr-som.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq-sr-som.dtsi
@@ -275,7 +275,7 @@
>;
};
- pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+ pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x8d
MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xcd
@@ -292,7 +292,7 @@
>;
};
- pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+ pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x9f
MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xdf
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
.../boot/dts/freescale/imx8mq-hummingboard-pulse.dts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-hummingboard-pulse.dts b/arch/arm64/boot/dts/freescale/imx8mq-hummingboard-pulse.dts
index bfd91c1ed6a5..366693f31992 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-hummingboard-pulse.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-hummingboard-pulse.dts
@@ -214,13 +214,13 @@
>;
};
- pinctrl_usdhc2_gpio: usdhc2grpgpio {
+ pinctrl_usdhc2_gpio: usdhc2gpiogrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41
>;
};
- pinctrl_usdhc2_vmmc: usdhc2vmmcgpio {
+ pinctrl_usdhc2_vmmc: usdhc2vmmcgpiogrp {
fsl,pins = <
MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x41
>;
@@ -238,7 +238,7 @@
>;
};
- pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd
@@ -250,7 +250,7 @@
>;
};
- pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xdf
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8qxp-colibri.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-colibri.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp-colibri.dtsi
index 75f17a29f81e..f38acff0d25c 100644
--- a/arch/arm64/boot/dts/freescale/imx8qxp-colibri.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8qxp-colibri.dtsi
@@ -494,7 +494,7 @@
>;
};
- pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+ pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
fsl,pins = <
IMX8QXP_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041
IMX8QXP_EMMC0_CMD_CONN_EMMC0_CMD 0x21
@@ -511,7 +511,7 @@
>;
};
- pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+ pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
fsl,pins = <
IMX8QXP_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041
IMX8QXP_EMMC0_CMD_CONN_EMMC0_CMD 0x21
@@ -554,7 +554,7 @@
>;
};
- pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
IMX8QXP_USDHC1_CLK_CONN_USDHC1_CLK 0x06000041 /* SODIMM 47 */
IMX8QXP_USDHC1_CMD_CONN_USDHC1_CMD 0x21 /* SODIMM 190 */
@@ -566,7 +566,7 @@
>;
};
- pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
IMX8QXP_USDHC1_CLK_CONN_USDHC1_CLK 0x06000041 /* SODIMM 47 */
IMX8QXP_USDHC1_CMD_CONN_USDHC1_CMD 0x21 /* SODIMM 190 */
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
index 48892ed562b4..ed9b5241acc7 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
@@ -221,13 +221,13 @@
>;
};
- pinctrl_pmic: pmicirq {
+ pinctrl_pmic: pmicirqgrp {
fsl,pins = <
MX8MN_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41
>;
};
- pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc {
+ pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
fsl,pins = <
MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
>;
@@ -246,7 +246,7 @@
>;
};
- pinctrl_usdhc2_gpio: usdhc2grpgpio {
+ pinctrl_usdhc2_gpio: usdhc2gpiogrp {
fsl,pins = <
MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x1c4
>;
@@ -264,7 +264,7 @@
>;
};
- pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK 0x194
MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4
@@ -276,7 +276,7 @@
>;
};
- pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK 0x196
MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6
@@ -304,7 +304,7 @@
>;
};
- pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+ pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
fsl,pins = <
MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK 0x40000194
MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4
@@ -320,7 +320,7 @@
>;
};
- pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+ pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
fsl,pins = <
MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK 0x40000196
MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
index a088831d2e24..7c6808814856 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
@@ -407,7 +407,7 @@
>;
};
- pinctrl_reg_usdhc2: regusdhc2grpgpio {
+ pinctrl_reg_usdhc2: regusdhc2gpiogrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
>;
--
2.17.1
Device tree schema expects pin configuration groups to end with 'grp'
suffix, otherwise dtbs_check complain with a warning like:
... do not match any of the regexes: 'grp$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts b/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts
index 3f541ddf0768..d6d3a3d5abc3 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts
@@ -365,7 +365,7 @@
>;
};
- pinctrl_pmic: pmicirq {
+ pinctrl_pmic: pmicirqgrp {
fsl,pins = <
MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x41
>;
@@ -395,7 +395,7 @@
>;
};
- pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+ pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x85
MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc5
@@ -412,7 +412,7 @@
>;
};
- pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+ pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK 0x87
MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD 0xc7
@@ -429,7 +429,7 @@
>;
};
- pinctrl_usdhc2_gpio: usdhc2grpgpio {
+ pinctrl_usdhc2_gpio: usdhc2gpiogrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41
MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x41
@@ -448,7 +448,7 @@
>;
};
- pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x85
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc5
@@ -460,7 +460,7 @@
>;
};
- pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
fsl,pins = <
MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x87
MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc7
--
2.17.1
Hi Krzysztof,
On Mon, Aug 24, 2020 at 4:07 PM Krzysztof Kozlowski <[email protected]> wrote:
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> index bf0859f1e1fa..5b5af8b381df 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
> @@ -70,7 +70,7 @@
> &ecspi2 {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_espi2>;
> - cs-gpios = <&gpio5 9 0>;
> + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
I have already sent a patch fixing this:
https://www.spinics.net/lists/arm-kernel/msg830895.html
On Tue, Aug 25, 2020 at 08:40:20AM +0200, Sascha Hauer wrote:
> On Mon, Aug 24, 2020 at 09:06:47PM +0200, Krzysztof Kozlowski wrote:
> > Driver requires different amount of clocks for different SoCs. Describe
> > these requirements properly to fix dtbs_check warnings like:
> >
> > arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml: nand-controller@33002000: clock-names:1: 'gpmi_apb' was expected
> >
> > Signed-off-by: Krzysztof Kozlowski <[email protected]>
> > ---
> > .../devicetree/bindings/mtd/gpmi-nand.yaml | 76 +++++++++++++++----
> > 1 file changed, 61 insertions(+), 15 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml b/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
> > index 28ff8c581837..9d764e654e1d 100644
> > --- a/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
> > +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - fsl,imx6q-gpmi-nand
> > + - fsl,imx6sx-gpmi-nand
> > + then:
> > + properties:
> > + clocks:
> > + items:
> > + - description: SoC gpmi io clock
> > + - description: SoC gpmi apb clock
> > + - description: SoC gpmi bch clock
> > + - description: SoC gpmi bch apb clock
> > + - description: SoC per1 bch clock
> > + clock-names:
> > + items:
> > + - const: gpmi_io
> > + - const: gpmi_apb
> > + - const: gpmi_bch
> > + - const: gpmi_bch_apb
> > + - const: per1_bch
>
> This enforces this specific order of the clocks given in the dts. The
> clock binding itself doesn't require any specific order, that's what we
> have the names array for.
>
> Is this really what we want?
Indeed but have in mind that the specific order was there already. This
patch does not address that part, only number of clocks.
Fixing this for any order could be done with patterns. I can work on
that.
Best regards,
Krzysztof
On Tue, Aug 25, 2020 at 06:23:36AM +0000, Vaittinen, Matti wrote:
>
> Hello Krzysztof,
>
> On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> > The input clock and number of clock provider cells are not required
> > for
> > the PMIC to operate. They are needed only for the optional bd718x7
> > clock driver.
>
> I have always found the DT bindings hard to do. I quite often end up
> having a different view with Rob so I probably could just shut-up and
> watch how this evolves :)
>
> But as keeping my mouth is so difficult...
>
> ...All of the drivers are optional. The PMIC can power-on without any
> drivers. Drivers are mostly used just for disabling the voltage from
> graphics accelerator block when it is not needed (optional). Or some
> DVS (optional). But yes, maybe the clk driver is "more optional" than
> the rest. XD So, I am not against this.
Each regulator node is optional, it can be skipped. And device will
work and regulator driver will bind. The difference here is that without
clocks the clock driver won't even bind... but if we keep clocks as
required, then multiple DTSes do not pass the bindings check.
I don't have strong feelings about dropping requirement for clocks, just
this looks easier to implement and logical to me (this is a PMIC so
clock is a secondary feature).
>
> > Add also clock-output-names as driver takes use of it.
> >
> > This fixes dtbs_check warnings like:
> >
> > arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> > 'clocks' is a required property
> > arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> > '#clock-cells' is a required property
> >
> > Signed-off-by: Krzysztof Kozlowski <[email protected]>
> > ---
> > .../devicetree/bindings/mfd/rohm,bd71847-pmic.yaml | 9
> > +++++++--
> > 1 file changed, 7 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71847-
> > pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71847-
> > pmic.yaml
> > index 77bcca2d414f..5d531051a153 100644
> > --- a/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
> > +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
> > @@ -38,6 +38,9 @@ properties:
> > "#clock-cells":
> > const: 0
> >
> > + clock-output-names:
> > + maxItems: 1
>
> I had this in original binding (text) document patch series. For some
> reason it was later dropped. Unfortunately I didn't easily find a
> reason as to why. Adding it back now is absolutely fine for me though.
>
> > +
> > # The BD71847 abd BD71850 support two different HW states as reset
> > target
> > # states. States are called as SNVS and READY. At READY state all
> > the PMIC
> > # power outputs go down and OTP is reload. At the SNVS state all
> > other logic
> > @@ -116,12 +119,14 @@ required:
> > - compatible
> > - reg
> > - interrupts
> > - - clocks
> > - - "#clock-cells"
> > - regulators
> >
> > additionalProperties: false
> >
> > +dependencies:
> > + '#clock-cells': [clocks]
> > + clocks: ['#clock-cells']
>
> This is new to me. Please educate me - does this simply mean that if
> '#clock-cells' is given, then also the 'clocks' must be given - and the
> other way around?
Yes, because the clocks do not have sense without clock-cells and vice versa.
>
> If so, then:
> Acked-By: Matti Vaittinen <[email protected]>
>
Thanks.
Best regards,
Krzysztof
On Tue, Aug 25, 2020 at 09:25:37AM +0200, [email protected] wrote:
> On Tue, Aug 25, 2020 at 06:51:33AM +0000, Vaittinen, Matti wrote:
> > Hello Krzysztof,
> >
> > Just some questions - please ignore if I misunderstood the impact of
> > the change.
> >
> > On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> > > Device tree schema expects regulator names to be lowercase. This
> > > fixes
> > > dtbs_check warnings like:
> > >
> > > arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> > > regulators:LDO1:regulator-name:0: 'LDO1' does not match '^ldo[1-6]$'
> > >
> > > Signed-off-by: Krzysztof Kozlowski <[email protected]>
> > > ---
> > > .../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22 +++++++++------
> > > ----
> > > 1 file changed, 11 insertions(+), 11 deletions(-)
> > >
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > index a1e5483dbbbe..299caed5d46e 100644
> > > --- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > @@ -60,7 +60,7 @@
> > >
> > > regulators {
> > > buck1_reg: BUCK1 {
> > > - regulator-name = "BUCK1";
> > > + regulator-name = "buck1";
> >
> > I am not against this change but I would expect seeing some other
> > patches too? I guess this will change the regulator name in regulator
> > core, right? So maybe I am mistaken but it looks to me this change is
> > visible in suppliers, sysfs and debugfs too? Thus changing this sounds
> > a bit like asking for a nose bleed :) Am I right that the impact of
> > this change has been thoroughly tested? Are there any other patches
> > (that I have not seen) related to this change?
>
> Oh, crap, the names of regulators in the driver are lowercase, but they
> use of_match_ptr for upper case. Seriously, why making a binding which
> is contradictory to the driver implementation on the first day?
>
> The driver goes with binding, right? One expects uppercase, other
> lowercase...
>
> And tell me, what is now the ABI? The binding or the incorrect
> implementation?
Wait, my mistake. I got confused by my own change. The node name stays
the same, so of_match will be correct.
The driver internally already uses lowercase names.
Everything looks good. I will just double check whether the constraints
did not change on the board after boot.
>
> >
> > > regulator-min-microvolt = <700000>;
> > > regulator-max-microvolt = <1300000>;
> > > regulator-boot-on;
> > > @@ -69,7 +69,7 @@
> > > };
> > >
> > > buck2_reg: BUCK2 {
> > > - regulator-name = "BUCK2";
> > > + regulator-name = "buck2";
> > > regulator-min-microvolt = <700000>;
> > > regulator-max-microvolt = <1300000>;
> > > regulator-boot-on;
> > > @@ -79,14 +79,14 @@
> > >
> > > buck3_reg: BUCK3 {
> > > // BUCK5 in datasheet
> > > - regulator-name = "BUCK3";
> > > + regulator-name = "buck3";
> > > regulator-min-microvolt = <700000>;
> > > regulator-max-microvolt = <1350000>;
> > > };
> > >
> > > buck4_reg: BUCK4 {
> > > // BUCK6 in datasheet
> > > - regulator-name = "BUCK4";
> > > + regulator-name = "buck4";
> > > regulator-min-microvolt = <3000000>;
> > > regulator-max-microvolt = <3300000>;
> > > regulator-boot-on;
> > > @@ -95,7 +95,7 @@
> > >
> > > buck5_reg: BUCK5 {
> > > // BUCK7 in datasheet
> > > - regulator-name = "BUCK5";
> > > + regulator-name = "buck5";
> >
> > What I see in bd718x7-regulator.c for LDO6 desc is:
> >
> > /* LDO6 is supplied by buck5 */
> > .supply_name = "buck5",
> >
> > So, is this change going to change the supply-chain for the board? Is
> > this intended? (Or am I mistaken on what is the impact of regulator-
> > name property?)
Good point, let me check the supplies.
>
> The names will take regulator names from the driver. The problem is with
> matching the of_node.
>
>
> Dear Rob,
>
> Maybe you have an idea how to fix this driver-binding ABI
> incompatibility? Or better just leave it?
Not valid anymore, I just got confused...
Best regards,
Krzysztof
On Tue, Aug 25, 2020 at 09:45:00AM +0200, [email protected] wrote:
> On Tue, Aug 25, 2020 at 09:25:37AM +0200, [email protected] wrote:
> > On Tue, Aug 25, 2020 at 06:51:33AM +0000, Vaittinen, Matti wrote:
> > > Hello Krzysztof,
> > >
> > > Just some questions - please ignore if I misunderstood the impact of
> > > the change.
> > >
> > > On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> > > > Device tree schema expects regulator names to be lowercase. This
> > > > fixes
> > > > dtbs_check warnings like:
> > > >
> > > > arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> > > > regulators:LDO1:regulator-name:0: 'LDO1' does not match '^ldo[1-6]$'
> > > >
> > > > Signed-off-by: Krzysztof Kozlowski <[email protected]>
> > > > ---
> > > > .../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22 +++++++++------
> > > > ----
> > > > 1 file changed, 11 insertions(+), 11 deletions(-)
> > > >
> > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > index a1e5483dbbbe..299caed5d46e 100644
> > > > --- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > +++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > @@ -60,7 +60,7 @@
> > > >
> > > > regulators {
> > > > buck1_reg: BUCK1 {
> > > > - regulator-name = "BUCK1";
> > > > + regulator-name = "buck1";
> > >
> > > I am not against this change but I would expect seeing some other
> > > patches too? I guess this will change the regulator name in regulator
> > > core, right? So maybe I am mistaken but it looks to me this change is
> > > visible in suppliers, sysfs and debugfs too? Thus changing this sounds
> > > a bit like asking for a nose bleed :) Am I right that the impact of
> > > this change has been thoroughly tested? Are there any other patches
> > > (that I have not seen) related to this change?
> >
> > Oh, crap, the names of regulators in the driver are lowercase, but they
> > use of_match_ptr for upper case. Seriously, why making a binding which
> > is contradictory to the driver implementation on the first day?
> >
> > The driver goes with binding, right? One expects uppercase, other
> > lowercase...
> >
> > And tell me, what is now the ABI? The binding or the incorrect
> > implementation?
>
> Wait, my mistake. I got confused by my own change. The node name stays
> the same, so of_match will be correct.
>
> The driver internally already uses lowercase names.
>
> Everything looks good. I will just double check whether the constraints
> did not change on the board after boot.
Constraints look good.
>
> >
> > >
> > > > regulator-min-microvolt = <700000>;
> > > > regulator-max-microvolt = <1300000>;
> > > > regulator-boot-on;
> > > > @@ -69,7 +69,7 @@
> > > > };
> > > >
> > > > buck2_reg: BUCK2 {
> > > > - regulator-name = "BUCK2";
> > > > + regulator-name = "buck2";
> > > > regulator-min-microvolt = <700000>;
> > > > regulator-max-microvolt = <1300000>;
> > > > regulator-boot-on;
> > > > @@ -79,14 +79,14 @@
> > > >
> > > > buck3_reg: BUCK3 {
> > > > // BUCK5 in datasheet
> > > > - regulator-name = "BUCK3";
> > > > + regulator-name = "buck3";
> > > > regulator-min-microvolt = <700000>;
> > > > regulator-max-microvolt = <1350000>;
> > > > };
> > > >
> > > > buck4_reg: BUCK4 {
> > > > // BUCK6 in datasheet
> > > > - regulator-name = "BUCK4";
> > > > + regulator-name = "buck4";
> > > > regulator-min-microvolt = <3000000>;
> > > > regulator-max-microvolt = <3300000>;
> > > > regulator-boot-on;
> > > > @@ -95,7 +95,7 @@
> > > >
> > > > buck5_reg: BUCK5 {
> > > > // BUCK7 in datasheet
> > > > - regulator-name = "BUCK5";
> > > > + regulator-name = "buck5";
> > >
> > > What I see in bd718x7-regulator.c for LDO6 desc is:
> > >
> > > /* LDO6 is supplied by buck5 */
> > > .supply_name = "buck5",
> > >
> > > So, is this change going to change the supply-chain for the board? Is
> > > this intended? (Or am I mistaken on what is the impact of regulator-
> > > name property?)
>
> Good point, let me check the supplies.
This patch actually fixes the supplies which before were not working
because of case mismatch.
Before:
regulator use open bypass opmode voltage current min max
---------------------------------------------------------------------------------------
regulator-dummy 4 5 0 unknown 0mV 0mA 0mV 0mV
LDO6 1 0 0 unknown 1200mV 0mA 900mV 1800mV
BUCK1 1 0 0 unknown 850mV 0mA 700mV 1300mV
BUCK2 2 1 0 unknown 1000mV 0mA 700mV 1300mV
cpu0-cpu 1 0mA 1000mV 1000mV
BUCK3 1 0 0 unknown 975mV 0mA 700mV 1350mV
BUCK4 1 0 0 unknown 3300mV 0mA 3000mV 3300mV
BUCK5 1 0 0 unknown 1800mV 0mA 1605mV 1995mV
BUCK6 1 0 0 unknown 1200mV 0mA 800mV 1400mV
LDO1 1 0 0 unknown 1800mV 0mA 1600mV 1900mV
LDO2 1 0 0 unknown 800mV 0mA 800mV 900mV
LDO3 1 0 0 unknown 1800mV 0mA 1800mV 3300mV
LDO4 1 0 0 unknown 900mV 0mA 900mV 1800mV
ldo5 1 4 0 unknown 1800mV 0mA 1800mV 1800mV
After:
regulator use open bypass opmode voltage current min max
---------------------------------------------------------------------------------------
buck1 1 0 0 unknown 850mV 0mA 700mV 1300mV
buck2 2 1 0 unknown 850mV 0mA 700mV 1300mV
cpu0-cpu 1 0mA 850mV 850mV
buck3 1 0 0 unknown 975mV 0mA 700mV 1350mV
buck4 1 0 0 unknown 3300mV 0mA 3000mV 3300mV
buck5 2 1 0 unknown 1800mV 0mA 1605mV 1995mV
ldo6 1 0 0 unknown 1200mV 0mA 900mV 1800mV
buck6 1 0 0 unknown 1200mV 0mA 800mV 1400mV
ldo1 1 0 0 unknown 1800mV 0mA 1600mV 1900mV
ldo2 1 0 0 unknown 800mV 0mA 800mV 900mV
ldo3 1 0 0 unknown 1800mV 0mA 1800mV 3300mV
ldo4 1 0 0 unknown 900mV 0mA 900mV 1800mV
ldo5 0 0 0 unknown 3300mV 0mA 0mV 0mV
Best regards,
Krzysztof
Hello Krzysztof,
On Tue, 2020-08-25 at 09:50 +0200, [email protected] wrote:
> On Tue, Aug 25, 2020 at 09:45:00AM +0200, [email protected] wrote:
> > On Tue, Aug 25, 2020 at 09:25:37AM +0200, [email protected] wrote:
> > > On Tue, Aug 25, 2020 at 06:51:33AM +0000, Vaittinen, Matti wrote:
> > > > Hello Krzysztof,
> > > >
> > > > Just some questions - please ignore if I misunderstood the
> > > > impact of
> > > > the change.
> > > >
> > > > On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> > > > > Device tree schema expects regulator names to be
> > > > > lowercase. This
> > > > > fixes
> > > > > dtbs_check warnings like:
> > > > >
> > > > > arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml:
> > > > > pmic@4b:
> > > > > regulators:LDO1:regulator-name:0: 'LDO1' does not match
> > > > > '^ldo[1-6]$'
> > > > >
> > > > > Signed-off-by: Krzysztof Kozlowski <[email protected]>
> > > > > ---
> > > > > .../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22
> > > > > +++++++++------
> > > > > ----
> > > > > 1 file changed, 11 insertions(+), 11 deletions(-)
> > > > >
> > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-
> > > > > evk.dts
> > > > > b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > index a1e5483dbbbe..299caed5d46e 100644
> > > > > --- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > @@ -60,7 +60,7 @@
> > > > >
> > > > > regulators {
> > > > > buck1_reg: BUCK1 {
> > > > > - regulator-name = "BUCK1";
> > > > > + regulator-name = "buck1";
> > > >
> > > > I am not against this change but I would expect seeing some
> > > > other
> > > > patches too? I guess this will change the regulator name in
> > > > regulator
> > > > core, right? So maybe I am mistaken but it looks to me this
> > > > change is
> > > > visible in suppliers, sysfs and debugfs too? Thus changing this
> > > > sounds
> > > > a bit like asking for a nose bleed :) Am I right that the
> > > > impact of
> > > > this change has been thoroughly tested? Are there any other
> > > > patches
> > > > (that I have not seen) related to this change?
> > >
> > > Oh, crap, the names of regulators in the driver are lowercase,
> > > but they
> > > use of_match_ptr for upper case. Seriously, why making a binding
> > > which
> > > is contradictory to the driver implementation on the first day?
> > >
> > > The driver goes with binding, right? One expects uppercase, other
> > > lowercase...
> > >
> > > And tell me, what is now the ABI? The binding or the incorrect
> > > implementation?
> >
> > Wait, my mistake. I got confused by my own change. The node name
> > stays
> > the same, so of_match will be correct.
Yes. I think so too. Match will still work as earler.
> >
> > The driver internally already uses lowercase names.
Yep. I was simply thinking that if anyone has been specifying the
regulators as suppliers by name - then this change will change things
(as is seen for LDO5). Additionally, if any user-space SW has been
reading the regulator states from sysfs - then these names will also
change the sysfs. Debugfs change is hopefully not such a big deal.
Whether this really breaks anything is beyond my knowledge as I don't
even have this board. Anyways, I think that by minimum the commit
message should point out that this change will be visible outside DTS
and the BD718x7 driver - up to the user-space.
> >
> > Everything looks good. I will just double check whether the
> > constraints
> > did not change on the board after boot.
>
> Constraints look good.
>
> > > > > regulator-min-microvolt =
> > > > > <700000>;
> > > > > regulator-max-microvolt =
> > > > > <1300000>;
> > > > > regulator-boot-on;
> > > > > @@ -69,7 +69,7 @@
> > > > > };
> > > > >
> > > > > buck2_reg: BUCK2 {
> > > > > - regulator-name = "BUCK2";
> > > > > + regulator-name = "buck2";
> > > > > regulator-min-microvolt =
> > > > > <700000>;
> > > > > regulator-max-microvolt =
> > > > > <1300000>;
> > > > > regulator-boot-on;
> > > > > @@ -79,14 +79,14 @@
> > > > >
> > > > > buck3_reg: BUCK3 {
> > > > > // BUCK5 in datasheet
> > > > > - regulator-name = "BUCK3";
> > > > > + regulator-name = "buck3";
> > > > > regulator-min-microvolt =
> > > > > <700000>;
> > > > > regulator-max-microvolt =
> > > > > <1350000>;
> > > > > };
> > > > >
> > > > > buck4_reg: BUCK4 {
> > > > > // BUCK6 in datasheet
> > > > > - regulator-name = "BUCK4";
> > > > > + regulator-name = "buck4";
> > > > > regulator-min-microvolt =
> > > > > <3000000>;
> > > > > regulator-max-microvolt =
> > > > > <3300000>;
> > > > > regulator-boot-on;
> > > > > @@ -95,7 +95,7 @@
> > > > >
> > > > > buck5_reg: BUCK5 {
> > > > > // BUCK7 in datasheet
> > > > > - regulator-name = "BUCK5";
> > > > > + regulator-name = "buck5";
> > > >
> > > > What I see in bd718x7-regulator.c for LDO6 desc is:
> > > >
> > > > /* LDO6 is supplied by buck5 */
> > > > .supply_name = "buck5",
> > > >
> > > > So, is this change going to change the supply-chain for the
> > > > board? Is
> > > > this intended? (Or am I mistaken on what is the impact of
> > > > regulator-
> > > > name property?)
> >
> > Good point, let me check the supplies.
>
> This patch actually fixes the supplies which before were not working
> because of case mismatch.
> Before:
>
> regulator use open bypass opmode voltage
> current min max
> -------------------------------------------------------------------
> --------------------
> regulator-dummy 4 5 0
> unknown 0mV 0mA 0mV 0mV
> LDO6 1 0 0
> unknown 1200mV 0mA 900mV 1800mV
> BUCK1 1 0 0
> unknown 850mV 0mA 700mV 1300mV
> BUCK2 2 1 0
> unknown 1000mV 0mA 700mV 1300mV
> cpu0-
> cpu 1 0mA 1000m
> V 1000mV
> BUCK3 1 0 0
> unknown 975mV 0mA 700mV 1350mV
> BUCK4 1 0 0
> unknown 3300mV 0mA 3000mV 3300mV
> BUCK5 1 0 0
> unknown 1800mV 0mA 1605mV 1995mV
> BUCK6 1 0 0
> unknown 1200mV 0mA 800mV 1400mV
> LDO1 1 0 0
> unknown 1800mV 0mA 1600mV 1900mV
> LDO2 1 0 0
> unknown 800mV 0mA 800mV 900mV
> LDO3 1 0 0
> unknown 1800mV 0mA 1800mV 3300mV
> LDO4 1 0 0
> unknown 900mV 0mA 900mV 1800mV
> ldo5 1 4 0
> unknown 1800mV 0mA 1800mV 1800mV
>
>
>
> After:
> regulator use open bypass opmode voltage
> current min max
> -------------------------------------------------------------------
> --------------------
> buck1 1 0 0
> unknown 850mV 0mA 700mV 1300mV
> buck2 2 1 0
> unknown 850mV 0mA 700mV 1300mV
> cpu0-
> cpu 1 0mA 850m
> V 850mV
> buck3 1 0 0
> unknown 975mV 0mA 700mV 1350mV
> buck4 1 0 0
> unknown 3300mV 0mA 3000mV 3300mV
> buck5 2 1 0
> unknown 1800mV 0mA 1605mV 1995mV
> ldo6 1 0 0
That was my point :) Before this commit the system has acted
differently - either by accident or by purpose. In any case, the DTS
change will change supply logic and this should probably be mentioned
in commit log to help bisecting possible issues :)
But as I said, I am not opposed to this change - I am merely somewhat
cautious with changes like this.
Best regards
Matti Vaittinen
Hello Krzysztof,
On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> The input clock and number of clock provider cells are not required
> for
> the PMIC to operate. They are needed only for the optional bd718x7
> clock driver.
I have always found the DT bindings hard to do. I quite often end up
having a different view with Rob so I probably could just shut-up and
watch how this evolves :)
But as keeping my mouth is so difficult...
...All of the drivers are optional. The PMIC can power-on without any
drivers. Drivers are mostly used just for disabling the voltage from
graphics accelerator block when it is not needed (optional). Or some
DVS (optional). But yes, maybe the clk driver is "more optional" than
the rest. XD So, I am not against this.
> Add also clock-output-names as driver takes use of it.
>
> This fixes dtbs_check warnings like:
>
> arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> 'clocks' is a required property
> arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> '#clock-cells' is a required property
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> .../devicetree/bindings/mfd/rohm,bd71847-pmic.yaml | 9
> +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71847-
> pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71847-
> pmic.yaml
> index 77bcca2d414f..5d531051a153 100644
> --- a/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
> +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
> @@ -38,6 +38,9 @@ properties:
> "#clock-cells":
> const: 0
>
> + clock-output-names:
> + maxItems: 1
I had this in original binding (text) document patch series. For some
reason it was later dropped. Unfortunately I didn't easily find a
reason as to why. Adding it back now is absolutely fine for me though.
> +
> # The BD71847 abd BD71850 support two different HW states as reset
> target
> # states. States are called as SNVS and READY. At READY state all
> the PMIC
> # power outputs go down and OTP is reload. At the SNVS state all
> other logic
> @@ -116,12 +119,14 @@ required:
> - compatible
> - reg
> - interrupts
> - - clocks
> - - "#clock-cells"
> - regulators
>
> additionalProperties: false
>
> +dependencies:
> + '#clock-cells': [clocks]
> + clocks: ['#clock-cells']
This is new to me. Please educate me - does this simply mean that if
'#clock-cells' is given, then also the 'clocks' must be given - and the
other way around?
If so, then:
Acked-By: Matti Vaittinen <[email protected]>
--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
K
iviharjunlenkki 1E
90220 OULU
FINLAND
~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
"non cogito me" dixit Rene Descarte, deinde evanescavit
(Thanks for the translation Simon)
On Mon, Aug 24, 2020 at 09:06:47PM +0200, Krzysztof Kozlowski wrote:
> Driver requires different amount of clocks for different SoCs. Describe
> these requirements properly to fix dtbs_check warnings like:
>
> arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml: nand-controller@33002000: clock-names:1: 'gpmi_apb' was expected
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> .../devicetree/bindings/mtd/gpmi-nand.yaml | 76 +++++++++++++++----
> 1 file changed, 61 insertions(+), 15 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml b/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
> index 28ff8c581837..9d764e654e1d 100644
> --- a/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
> +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - fsl,imx6q-gpmi-nand
> + - fsl,imx6sx-gpmi-nand
> + then:
> + properties:
> + clocks:
> + items:
> + - description: SoC gpmi io clock
> + - description: SoC gpmi apb clock
> + - description: SoC gpmi bch clock
> + - description: SoC gpmi bch apb clock
> + - description: SoC per1 bch clock
> + clock-names:
> + items:
> + - const: gpmi_io
> + - const: gpmi_apb
> + - const: gpmi_bch
> + - const: gpmi_bch_apb
> + - const: per1_bch
This enforces this specific order of the clocks given in the dts. The
clock binding itself doesn't require any specific order, that's what we
have the names array for.
Is this really what we want?
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Hello Krzysztof,
Just some questions - please ignore if I misunderstood the impact of
the change.
On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> Device tree schema expects regulator names to be lowercase. This
> fixes
> dtbs_check warnings like:
>
> arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> regulators:LDO1:regulator-name:0: 'LDO1' does not match '^ldo[1-6]$'
>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> ---
> .../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22 +++++++++------
> ----
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> index a1e5483dbbbe..299caed5d46e 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> @@ -60,7 +60,7 @@
>
> regulators {
> buck1_reg: BUCK1 {
> - regulator-name = "BUCK1";
> + regulator-name = "buck1";
I am not against this change but I would expect seeing some other
patches too? I guess this will change the regulator name in regulator
core, right? So maybe I am mistaken but it looks to me this change is
visible in suppliers, sysfs and debugfs too? Thus changing this sounds
a bit like asking for a nose bleed :) Am I right that the impact of
this change has been thoroughly tested? Are there any other patches
(that I have not seen) related to this change?
> regulator-min-microvolt = <700000>;
> regulator-max-microvolt = <1300000>;
> regulator-boot-on;
> @@ -69,7 +69,7 @@
> };
>
> buck2_reg: BUCK2 {
> - regulator-name = "BUCK2";
> + regulator-name = "buck2";
> regulator-min-microvolt = <700000>;
> regulator-max-microvolt = <1300000>;
> regulator-boot-on;
> @@ -79,14 +79,14 @@
>
> buck3_reg: BUCK3 {
> // BUCK5 in datasheet
> - regulator-name = "BUCK3";
> + regulator-name = "buck3";
> regulator-min-microvolt = <700000>;
> regulator-max-microvolt = <1350000>;
> };
>
> buck4_reg: BUCK4 {
> // BUCK6 in datasheet
> - regulator-name = "BUCK4";
> + regulator-name = "buck4";
> regulator-min-microvolt = <3000000>;
> regulator-max-microvolt = <3300000>;
> regulator-boot-on;
> @@ -95,7 +95,7 @@
>
> buck5_reg: BUCK5 {
> // BUCK7 in datasheet
> - regulator-name = "BUCK5";
> + regulator-name = "buck5";
What I see in bd718x7-regulator.c for LDO6 desc is:
/* LDO6 is supplied by buck5 */
.supply_name = "buck5",
So, is this change going to change the supply-chain for the board? Is
this intended? (Or am I mistaken on what is the impact of regulator-
name property?)
Best Regards
Matti Vaittinen
On Tue, Aug 25, 2020 at 06:51:33AM +0000, Vaittinen, Matti wrote:
> Hello Krzysztof,
>
> Just some questions - please ignore if I misunderstood the impact of
> the change.
>
> On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> > Device tree schema expects regulator names to be lowercase. This
> > fixes
> > dtbs_check warnings like:
> >
> > arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b:
> > regulators:LDO1:regulator-name:0: 'LDO1' does not match '^ldo[1-6]$'
> >
> > Signed-off-by: Krzysztof Kozlowski <[email protected]>
> > ---
> > .../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22 +++++++++------
> > ----
> > 1 file changed, 11 insertions(+), 11 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > index a1e5483dbbbe..299caed5d46e 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > @@ -60,7 +60,7 @@
> >
> > regulators {
> > buck1_reg: BUCK1 {
> > - regulator-name = "BUCK1";
> > + regulator-name = "buck1";
>
> I am not against this change but I would expect seeing some other
> patches too? I guess this will change the regulator name in regulator
> core, right? So maybe I am mistaken but it looks to me this change is
> visible in suppliers, sysfs and debugfs too? Thus changing this sounds
> a bit like asking for a nose bleed :) Am I right that the impact of
> this change has been thoroughly tested? Are there any other patches
> (that I have not seen) related to this change?
Oh, crap, the names of regulators in the driver are lowercase, but they
use of_match_ptr for upper case. Seriously, why making a binding which
is contradictory to the driver implementation on the first day?
The driver goes with binding, right? One expects uppercase, other
lowercase...
And tell me, what is now the ABI? The binding or the incorrect
implementation?
>
> > regulator-min-microvolt = <700000>;
> > regulator-max-microvolt = <1300000>;
> > regulator-boot-on;
> > @@ -69,7 +69,7 @@
> > };
> >
> > buck2_reg: BUCK2 {
> > - regulator-name = "BUCK2";
> > + regulator-name = "buck2";
> > regulator-min-microvolt = <700000>;
> > regulator-max-microvolt = <1300000>;
> > regulator-boot-on;
> > @@ -79,14 +79,14 @@
> >
> > buck3_reg: BUCK3 {
> > // BUCK5 in datasheet
> > - regulator-name = "BUCK3";
> > + regulator-name = "buck3";
> > regulator-min-microvolt = <700000>;
> > regulator-max-microvolt = <1350000>;
> > };
> >
> > buck4_reg: BUCK4 {
> > // BUCK6 in datasheet
> > - regulator-name = "BUCK4";
> > + regulator-name = "buck4";
> > regulator-min-microvolt = <3000000>;
> > regulator-max-microvolt = <3300000>;
> > regulator-boot-on;
> > @@ -95,7 +95,7 @@
> >
> > buck5_reg: BUCK5 {
> > // BUCK7 in datasheet
> > - regulator-name = "BUCK5";
> > + regulator-name = "buck5";
>
> What I see in bd718x7-regulator.c for LDO6 desc is:
>
> /* LDO6 is supplied by buck5 */
> .supply_name = "buck5",
>
> So, is this change going to change the supply-chain for the board? Is
> this intended? (Or am I mistaken on what is the impact of regulator-
> name property?)
The names will take regulator names from the driver. The problem is with
matching the of_node.
Dear Rob,
Maybe you have an idea how to fix this driver-binding ABI
incompatibility? Or better just leave it?
Best regards,
Krzysztof
On Tue, Aug 25, 2020 at 08:22:18AM +0000, Vaittinen, Matti wrote:
> Hello Krzysztof,
>
> On Tue, 2020-08-25 at 09:50 +0200, [email protected] wrote:
> > On Tue, Aug 25, 2020 at 09:45:00AM +0200, [email protected] wrote:
> > > On Tue, Aug 25, 2020 at 09:25:37AM +0200, [email protected] wrote:
> > > > On Tue, Aug 25, 2020 at 06:51:33AM +0000, Vaittinen, Matti wrote:
> > > > > Hello Krzysztof,
> > > > >
> > > > > Just some questions - please ignore if I misunderstood the
> > > > > impact of
> > > > > the change.
> > > > >
> > > > > On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski wrote:
> > > > > > Device tree schema expects regulator names to be
> > > > > > lowercase. This
> > > > > > fixes
> > > > > > dtbs_check warnings like:
> > > > > >
> > > > > > arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml:
> > > > > > pmic@4b:
> > > > > > regulators:LDO1:regulator-name:0: 'LDO1' does not match
> > > > > > '^ldo[1-6]$'
> > > > > >
> > > > > > Signed-off-by: Krzysztof Kozlowski <[email protected]>
> > > > > > ---
> > > > > > .../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22
> > > > > > +++++++++------
> > > > > > ----
> > > > > > 1 file changed, 11 insertions(+), 11 deletions(-)
> > > > > >
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-
> > > > > > evk.dts
> > > > > > b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > > index a1e5483dbbbe..299caed5d46e 100644
> > > > > > --- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > > @@ -60,7 +60,7 @@
> > > > > >
> > > > > > regulators {
> > > > > > buck1_reg: BUCK1 {
> > > > > > - regulator-name = "BUCK1";
> > > > > > + regulator-name = "buck1";
> > > > >
> > > > > I am not against this change but I would expect seeing some
> > > > > other
> > > > > patches too? I guess this will change the regulator name in
> > > > > regulator
> > > > > core, right? So maybe I am mistaken but it looks to me this
> > > > > change is
> > > > > visible in suppliers, sysfs and debugfs too? Thus changing this
> > > > > sounds
> > > > > a bit like asking for a nose bleed :) Am I right that the
> > > > > impact of
> > > > > this change has been thoroughly tested? Are there any other
> > > > > patches
> > > > > (that I have not seen) related to this change?
> > > >
> > > > Oh, crap, the names of regulators in the driver are lowercase,
> > > > but they
> > > > use of_match_ptr for upper case. Seriously, why making a binding
> > > > which
> > > > is contradictory to the driver implementation on the first day?
> > > >
> > > > The driver goes with binding, right? One expects uppercase, other
> > > > lowercase...
> > > >
> > > > And tell me, what is now the ABI? The binding or the incorrect
> > > > implementation?
> > >
> > > Wait, my mistake. I got confused by my own change. The node name
> > > stays
> > > the same, so of_match will be correct.
>
> Yes. I think so too. Match will still work as earler.
>
> > >
> > > The driver internally already uses lowercase names.
>
> Yep. I was simply thinking that if anyone has been specifying the
> regulators as suppliers by name - then this change will change things
> (as is seen for LDO5). Additionally, if any user-space SW has been
> reading the regulator states from sysfs - then these names will also
> change the sysfs. Debugfs change is hopefully not such a big deal.
About user-space, I think the embedded DT is not part of kernel ABI, so
there is no such requirement about keeping it stable. I agree though it
might be annoying surprise.
>
> Whether this really breaks anything is beyond my knowledge as I don't
> even have this board. Anyways, I think that by minimum the commit
> message should point out that this change will be visible outside DTS
> and the BD718x7 driver - up to the user-space.
Good point, I will extend the commit msg about possible impact and
fixing supplies.
>
> > >
> > > Everything looks good. I will just double check whether the
> > > constraints
> > > did not change on the board after boot.
> >
> > Constraints look good.
> >
> > > > > > regulator-min-microvolt =
> > > > > > <700000>;
> > > > > > regulator-max-microvolt =
> > > > > > <1300000>;
> > > > > > regulator-boot-on;
> > > > > > @@ -69,7 +69,7 @@
> > > > > > };
> > > > > >
> > > > > > buck2_reg: BUCK2 {
> > > > > > - regulator-name = "BUCK2";
> > > > > > + regulator-name = "buck2";
> > > > > > regulator-min-microvolt =
> > > > > > <700000>;
> > > > > > regulator-max-microvolt =
> > > > > > <1300000>;
> > > > > > regulator-boot-on;
> > > > > > @@ -79,14 +79,14 @@
> > > > > >
> > > > > > buck3_reg: BUCK3 {
> > > > > > // BUCK5 in datasheet
> > > > > > - regulator-name = "BUCK3";
> > > > > > + regulator-name = "buck3";
> > > > > > regulator-min-microvolt =
> > > > > > <700000>;
> > > > > > regulator-max-microvolt =
> > > > > > <1350000>;
> > > > > > };
> > > > > >
> > > > > > buck4_reg: BUCK4 {
> > > > > > // BUCK6 in datasheet
> > > > > > - regulator-name = "BUCK4";
> > > > > > + regulator-name = "buck4";
> > > > > > regulator-min-microvolt =
> > > > > > <3000000>;
> > > > > > regulator-max-microvolt =
> > > > > > <3300000>;
> > > > > > regulator-boot-on;
> > > > > > @@ -95,7 +95,7 @@
> > > > > >
> > > > > > buck5_reg: BUCK5 {
> > > > > > // BUCK7 in datasheet
> > > > > > - regulator-name = "BUCK5";
> > > > > > + regulator-name = "buck5";
> > > > >
> > > > > What I see in bd718x7-regulator.c for LDO6 desc is:
> > > > >
> > > > > /* LDO6 is supplied by buck5 */
> > > > > .supply_name = "buck5",
> > > > >
> > > > > So, is this change going to change the supply-chain for the
> > > > > board? Is
> > > > > this intended? (Or am I mistaken on what is the impact of
> > > > > regulator-
> > > > > name property?)
> > >
> > > Good point, let me check the supplies.
> >
> > This patch actually fixes the supplies which before were not working
> > because of case mismatch.
> > Before:
> >
> > regulator use open bypass opmode voltage
> > current min max
> > -------------------------------------------------------------------
> > --------------------
> > regulator-dummy 4 5 0
> > unknown 0mV 0mA 0mV 0mV
> > LDO6 1 0 0
> > unknown 1200mV 0mA 900mV 1800mV
> > BUCK1 1 0 0
> > unknown 850mV 0mA 700mV 1300mV
> > BUCK2 2 1 0
> > unknown 1000mV 0mA 700mV 1300mV
> > cpu0-
> > cpu 1 0mA 1000m
> > V 1000mV
> > BUCK3 1 0 0
> > unknown 975mV 0mA 700mV 1350mV
> > BUCK4 1 0 0
> > unknown 3300mV 0mA 3000mV 3300mV
> > BUCK5 1 0 0
> > unknown 1800mV 0mA 1605mV 1995mV
> > BUCK6 1 0 0
> > unknown 1200mV 0mA 800mV 1400mV
> > LDO1 1 0 0
> > unknown 1800mV 0mA 1600mV 1900mV
> > LDO2 1 0 0
> > unknown 800mV 0mA 800mV 900mV
> > LDO3 1 0 0
> > unknown 1800mV 0mA 1800mV 3300mV
> > LDO4 1 0 0
> > unknown 900mV 0mA 900mV 1800mV
> > ldo5 1 4 0
> > unknown 1800mV 0mA 1800mV 1800mV
> >
> >
> >
> > After:
> > regulator use open bypass opmode voltage
> > current min max
> > -------------------------------------------------------------------
> > --------------------
> > buck1 1 0 0
> > unknown 850mV 0mA 700mV 1300mV
> > buck2 2 1 0
> > unknown 850mV 0mA 700mV 1300mV
> > cpu0-
> > cpu 1 0mA 850m
> > V 850mV
> > buck3 1 0 0
> > unknown 975mV 0mA 700mV 1350mV
> > buck4 1 0 0
> > unknown 3300mV 0mA 3000mV 3300mV
> > buck5 2 1 0
> > unknown 1800mV 0mA 1605mV 1995mV
> > ldo6 1 0 0
>
> That was my point :) Before this commit the system has acted
> differently - either by accident or by purpose. In any case, the DTS
> change will change supply logic and this should probably be mentioned
> in commit log to help bisecting possible issues :)
>
> But as I said, I am not opposed to this change - I am merely somewhat
> cautious with changes like this.
Thanks for the hints.
Best regards,
Krzysztof
On Mon, Aug 24, 2020 at 09:06:48PM +0200, Krzysztof Kozlowski wrote:
> Device tree schema expects regulator names to be lowercase. This fixes
> dtbs_check warnings like:
The subject here is not correct. Copy/paste error. I'll fix it up.
Best regards,
Krzysztof
On Tue, 2020-08-25 at 10:27 +0200, [email protected] wrote:
> On Tue, Aug 25, 2020 at 08:22:18AM +0000, Vaittinen, Matti wrote:
> > Hello Krzysztof,
> >
> > On Tue, 2020-08-25 at 09:50 +0200, [email protected] wrote:
> > > On Tue, Aug 25, 2020 at 09:45:00AM +0200, [email protected] wrote:
> > > > On Tue, Aug 25, 2020 at 09:25:37AM +0200, [email protected]
> > > > wrote:
> > > > > On Tue, Aug 25, 2020 at 06:51:33AM +0000, Vaittinen, Matti
> > > > > wrote:
> > > > > > Hello Krzysztof,
> > > > > >
> > > > > > Just some questions - please ignore if I misunderstood the
> > > > > > impact of
> > > > > > the change.
> > > > > >
> > > > > > On Mon, 2020-08-24 at 21:06 +0200, Krzysztof Kozlowski
> > > > > > wrote:
> > > > > > > Device tree schema expects regulator names to be
> > > > > > > lowercase. This
> > > > > > > fixes
> > > > > > > dtbs_check warnings like:
> > > > > > >
> > > > > > > arch/arm64/boot/dts/freescale/imx8mn-ddr4-
> > > > > > > evk.dt.yaml:
> > > > > > > pmic@4b:
> > > > > > > regulators:LDO1:regulator-name:0: 'LDO1' does not match
> > > > > > > '^ldo[1-6]$'
> > > > > > >
> > > > > > > Signed-off-by: Krzysztof Kozlowski <[email protected]>
> > > > > > > ---
> > > > > > > .../boot/dts/freescale/imx8mn-ddr4-evk.dts | 22
> > > > > > > +++++++++------
> > > > > > > ----
> > > > > > > 1 file changed, 11 insertions(+), 11 deletions(-)
> > > > > > >
> > > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-
> > > > > > > evk.dts
> > > > > > > b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > > > index a1e5483dbbbe..299caed5d46e 100644
> > > > > > > --- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
> > > > > > > @@ -60,7 +60,7 @@
> > > > > > >
> > > > > > > regulators {
> > > > > > > buck1_reg: BUCK1 {
> > > > > > > - regulator-name = "BUCK1";
> > > > > > > + regulator-name = "buck1";
> > > > > >
> > > > > > I am not against this change but I would expect seeing some
> > > > > > other
> > > > > > patches too? I guess this will change the regulator name in
> > > > > > regulator
> > > > > > core, right? So maybe I am mistaken but it looks to me this
> > > > > > change is
> > > > > > visible in suppliers, sysfs and debugfs too? Thus changing
> > > > > > this
> > > > > > sounds
> > > > > > a bit like asking for a nose bleed :) Am I right that the
> > > > > > impact of
> > > > > > this change has been thoroughly tested? Are there any other
> > > > > > patches
> > > > > > (that I have not seen) related to this change?
> > > > >
> > > > > Oh, crap, the names of regulators in the driver are
> > > > > lowercase,
> > > > > but they
> > > > > use of_match_ptr for upper case. Seriously, why making a
> > > > > binding
> > > > > which
> > > > > is contradictory to the driver implementation on the first
> > > > > day?
> > > > >
> > > > > The driver goes with binding, right? One expects uppercase,
> > > > > other
> > > > > lowercase...
> > > > >
> > > > > And tell me, what is now the ABI? The binding or the
> > > > > incorrect
> > > > > implementation?
> > > >
> > > > Wait, my mistake. I got confused by my own change. The node
> > > > name
> > > > stays
> > > > the same, so of_match will be correct.
> >
> > Yes. I think so too. Match will still work as earler.
> >
> > > > The driver internally already uses lowercase names.
> >
> > Yep. I was simply thinking that if anyone has been specifying the
> > regulators as suppliers by name - then this change will change
> > things
> > (as is seen for LDO5). Additionally, if any user-space SW has been
> > reading the regulator states from sysfs - then these names will
> > also
> > change the sysfs. Debugfs change is hopefully not such a big deal.
>
> About user-space, I think the embedded DT is not part of kernel ABI,
> so
> there is no such requirement about keeping it stable. I agree though
> it
> might be annoying surprise.
Just to ensure we are talking about same thing:
I see you are talking about embedded DT not being an ABI. I agree with
you - DT itself is not ABI. But in case you missed this we have:
static ssize_t name_show(struct device *dev, struct device_attribute
*attr,
char *buf)
{
struct regulator_dev *rdev = dev_get_drvdata(dev);
return sprintf(buf, "%s\n", rdev_get_name(rdev));
}
static DEVICE_ATTR_RO(name);
in regulator core. I believe the rdev_get_name(rdev) shall change
according to regulator-name. (But as I said, I have no idea if this is
used by user-space on your board - I'll leave this for you & others to
judge).
>
> > Whether this really breaks anything is beyond my knowledge as I
> > don't
> > even have this board. Anyways, I think that by minimum the commit
> > message should point out that this change will be visible outside
> > DTS
> > and the BD718x7 driver - up to the user-space.
>
> Good point, I will extend the commit msg about possible impact and
> fixing supplies.
>
Thanks :)
--Matti
--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland
SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND
~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
"non cogito me" dixit Rene Descarte, deinde evanescavit
(Thanks for the translation Simon)