2020-06-29 20:48:30

by Bruno Thomsen

[permalink] [raw]
Subject: [PATCH 1/3] dt-bindings: ARM: imx: add kamstrup flex concentrator to schema

Add Kamstrup flex concentrator compatibles to the schema so we can
make use of them for the validation.

Signed-off-by: Bruno Thomsen <[email protected]>
---
Documentation/devicetree/bindings/arm/fsl.yaml | 2 ++
1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 05906e291e38..66627b272e40 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -299,6 +299,8 @@ properties:
- enum:
- fsl,imx7d-sdb # i.MX7 SabreSD Board
- fsl,imx7d-sdb-reva # i.MX7 SabreSD Rev-A Board
+ - kam,imx7d-flex-concentrator # Kamstrup OMNIA Flex Concentrator
+ - kam,imx7d-flex-concentrator-mfg # Kamstrup OMNIA Flex Concentrator in manufacturing mode
- novtech,imx7d-meerkat96 # i.MX7 Meerkat96 Board
- technexion,imx7d-pico-dwarf # TechNexion i.MX7D Pico-Dwarf
- technexion,imx7d-pico-hobbit # TechNexion i.MX7D Pico-Hobbit

base-commit: 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68
--
2.26.2


2020-06-29 20:54:34

by Bruno Thomsen

[permalink] [raw]
Subject: [PATCH 3/3] MAINTAINERS: Add Bruno Thomsen as reviewer of Kamstrup DTS

Add myself as reviewer of device trees for Kamstrup
Concentrators.

Signed-off-by: Bruno Thomsen <[email protected]>
---
MAINTAINERS | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 496fd4eafb68..97fc112309af 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9282,6 +9282,11 @@ S: Maintained
F: Documentation/hwmon/k8temp.rst
F: drivers/hwmon/k8temp.c

+KAMSTRUP CONCENTRATORS
+R: Bruno Thomsen <[email protected]>
+S: Maintained
+F: arch/arm/boot/dts/imx7d-flex-concentrator*.dts
+
KASAN
M: Andrey Ryabinin <[email protected]>
R: Alexander Potapenko <[email protected]>
--
2.26.2

2020-06-29 20:55:54

by Bruno Thomsen

[permalink] [raw]
Subject: [PATCH 2/3] ARM: dts: imx7: add support for kamstrup flex concentrator

This adds support for the OMNIA Flex Concentrator product
from Kamstrup A/S. It's providing radio mesh communication
infrastructure for smart electricity meters.

Kamstrup OMNIA is a modular and scalable smart grid platform.

Signed-off-by: Bruno Thomsen <[email protected]>
---
arch/arm/boot/dts/Makefile | 2 +
.../boot/dts/imx7d-flex-concentrator-mfg.dts | 25 ++
arch/arm/boot/dts/imx7d-flex-concentrator.dts | 307 ++++++++++++++++++
3 files changed, 334 insertions(+)
create mode 100644 arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dts
create mode 100644 arch/arm/boot/dts/imx7d-flex-concentrator.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index e6a1cac0bfc7..bf5c5d86a2e8 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -628,6 +628,8 @@ dtb-$(CONFIG_SOC_IMX7D) += \
imx7d-colibri-emmc-aster.dtb \
imx7d-colibri-emmc-eval-v3.dtb \
imx7d-colibri-eval-v3.dtb \
+ imx7d-flex-concentrator.dtb \
+ imx7d-flex-concentrator-mfg.dtb \
imx7d-mba7.dtb \
imx7d-meerkat96.dtb \
imx7d-nitrogen7.dtb \
diff --git a/arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dts b/arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dts
new file mode 100644
index 000000000000..789f0837058f
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dts
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for Kamstrup OMNIA Flex Concentrator in
+ * manufacturing/debugging mode.
+ *
+ * Copyright (C) 2020 Kamstrup A/S
+ * Author: Bruno Thomsen <[email protected]>
+ */
+
+/dts-v1/;
+
+#include "imx7d-flex-concentrator.dts"
+
+/ {
+ model = "Kamstrup OMNIA Flex Concentrator - Manufacturing";
+ compatible = "kam,imx7d-flex-concentrator-mfg", "kam,imx7d-flex-concentrator", "fsl,imx7d";
+
+ chosen {
+ stdout-path = &uart4;
+ };
+};
+
+&uart4 {
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx7d-flex-concentrator.dts b/arch/arm/boot/dts/imx7d-flex-concentrator.dts
new file mode 100644
index 000000000000..887135cca650
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-flex-concentrator.dts
@@ -0,0 +1,307 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for Kamstrup OMNIA Flex Concentrator.
+ *
+ * Copyright (C) 2020 Kamstrup A/S
+ * Author: Bruno Thomsen <[email protected]>
+ */
+
+/dts-v1/;
+
+#include "imx7d-tqma7.dtsi"
+
+/* Some I2C devices on TQMa7 SoM are not mounted */
+/delete-node/ &m24c64;
+/delete-node/ &ds1339;
+
+/ {
+ model = "Kamstrup OMNIA Flex Concentrator";
+ compatible = "kam,imx7d-flex-concentrator", "fsl,imx7d";
+
+ memory@80000000 {
+ device_type = "memory";
+ /* 1024 MB - TQMa7D board configuration */
+ reg = <0x80000000 0x40000000>;
+ };
+
+ reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "VBUS_USBOTG2";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_vref_1v8: regulator-vref-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "VCC1V8_REF";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ vin-supply = <&sw2_reg>;
+ };
+
+ /*
+ * Human Machine Interface consists of 4 dual red/green LEDs.
+ * hmi-a-green is controlled directly by the switch-mode power supply.
+ * hmi-a-red is not used.
+ */
+ gpio-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_leds>;
+
+ hmi-b-red {
+ label = "hmi-b:red:provisioning";
+ gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ hmi-b-green {
+ label = "hmi-b:green:operation";
+ gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ hmi-c-red {
+ label = "hmi-c:red:mesh-error";
+ gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ hmi-c-green {
+ label = "hmi-c:green:mesh-activity";
+ gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ hmi-d-red {
+ label = "hmi-d:red:wan-down";
+ gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ hmi-d-green {
+ label = "hmi-d:green:ipsec-up";
+ gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ /*
+ * Errata e10574 board restart workaround.
+ */
+ gpio-restart {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_restart>;
+ compatible = "gpio-restart";
+ gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
+ priority = <200>;
+ };
+};
+
+/*
+ * External watchdog feature provided by pcf2127.
+ */
+&wdog1 {
+ status = "disabled";
+};
+
+/*
+ * Detection signals for internal USB modules.
+ * Used for robust USB plug and play handling such as USB downstream port
+ * power-cycle and USB hub reset in case of misbehaving or crashed modules.
+ *
+ * SMPS - AC input monitor based on zero crossing.
+ * Used for last gasp notification.
+ */
+&gpio3 {
+ gpio-line-names = "", "", "", "", "", "", "", "",
+ "", "", "", "", "smps-ac-monitor", "", "usb-hub-reset", "",
+ "", "", "", "", "", "", "", "",
+ "", "module-b-detection", "", "module-a-detection", "", "", "", "";
+};
+
+/*
+ * Tamper IRQ trigger timestamp reading.
+ * Used for sealed cover opened notification.
+ */
+&gpio5 {
+ gpio-line-names = "", "", "", "", "", "", "", "",
+ "", "", "", "", "rtc-tamper-irq", "", "", "",
+ "", "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "", "";
+};
+
+/*
+ * Analog signals
+ * ADC1_IN0: SMPS - 5V output monitor (voltage divider: 1/0.2806)
+ */
+&adc1 {
+ vref-supply = <&reg_vref_1v8>;
+ status = "okay";
+};
+
+&ecspi2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ecspi2>;
+ num-chipselects = <1>;
+ cs-gpios = <&gpio4 23 GPIO_ACTIVE_LOW>;
+ status = "okay";
+
+ pcf2127: rtc@0 {
+ compatible = "nxp,pcf2127";
+ reg = <0>;
+ spi-max-frequency = <2000000>;
+ };
+};
+
+&ecspi4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ecspi4>;
+ num-chipselects = <1>;
+ cs-gpios = <&gpio3 3 GPIO_ACTIVE_LOW>;
+ status = "okay";
+
+ /*
+ * ST chip maximum SPI clock frequency is 33 MHz.
+ *
+ * TCG specification - Section 6.4.1 Clocking:
+ * TPM shall support a SPI clock frequency range of 10-24 MHz.
+ */
+ st33htph: tpm-tis@0 {
+ compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi";
+ reg = <0>;
+ spi-max-frequency = <24000000>;
+ };
+};
+
+&fec1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_enet1>;
+ phy-mode = "rmii";
+ phy-reset-gpios = <&gpio7 15 GPIO_ACTIVE_LOW>;
+ phy-reset-duration = <100>;
+ phy-reset-post-delay = <1000>;
+ phy-handle = <&ethphy>;
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ ethphy: ethernet-phy@1 {
+ /* Micrel KSZ8051RNLV */
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ };
+ };
+};
+
+&iomuxc {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_misc>;
+
+ pinctrl_ecspi2: ecspi2grp {
+ fsl,pins = <
+ MX7D_PAD_ECSPI2_MISO__ECSPI2_MISO 0x7c /* X2-15 */
+ MX7D_PAD_ECSPI2_MOSI__ECSPI2_MOSI 0x74 /* X2-18 */
+ MX7D_PAD_ECSPI2_SCLK__ECSPI2_SCLK 0x74 /* X2-13 */
+ MX7D_PAD_ECSPI2_SS0__GPIO4_IO23 0x74 /* X2-20 */
+ /* RTC - Tamper IRQ */
+ MX7D_PAD_SD2_CLK__GPIO5_IO12 0x3c /* X1-92 */
+ >;
+ };
+
+ pinctrl_ecspi4: ecspi4grp {
+ fsl,pins = <
+ MX7D_PAD_LCD_CLK__ECSPI4_MISO 0x7c /* X2-72 */
+ MX7D_PAD_LCD_ENABLE__ECSPI4_MOSI 0x74 /* X2-68 */
+ MX7D_PAD_LCD_HSYNC__ECSPI4_SCLK 0x74 /* X2-76 */
+ MX7D_PAD_LCD_VSYNC__GPIO3_IO3 0x74 /* X2-78 */
+ >;
+ };
+
+ pinctrl_leds: ledsgrp {
+ fsl,pins = <
+ MX7D_PAD_LCD_DATA01__GPIO3_IO6 0x14 /* X2-82 */
+ MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x14 /* X1-82 */
+ MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x14 /* X1-84 */
+ MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30 0x14 /* X1-86 */
+ MX7D_PAD_EPDC_PWR_STAT__GPIO2_IO31 0x14 /* X1-88 */
+ MX7D_PAD_UART2_TX_DATA__GPIO4_IO3 0x14 /* X1-90 */
+ >;
+ };
+
+ pinctrl_enet1: enet1grp {
+ fsl,pins = <
+ MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x03 /* X2-48 */
+ MX7D_PAD_GPIO1_IO11__ENET1_MDC 0x03 /* X2-46 */
+ MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x71 /* X2-53 */
+ MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x71 /* X2-55 */
+ MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x71 /* X2-61 */
+ MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x79 /* X2-56 */
+ MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x79 /* X2-58 */
+ MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x79 /* X2-64 */
+ MX7D_PAD_ENET1_RGMII_RXC__ENET1_RX_ER 0x73 /* X2-52 */
+ /* PHY reset: SION, 100kPU, SRE_FAST, DSE_X1 */
+ MX7D_PAD_ENET1_COL__GPIO7_IO15 0x40000070 /* X1-96 */
+ /* Clock from PHY to MAC */
+ MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x40000073 /* X3-4 */
+ >;
+ };
+
+ pinctrl_misc: miscgrp {
+ fsl,pins = <
+ /* Module A detection (low = present) */
+ MX7D_PAD_LCD_DATA22__GPIO3_IO27 0x7c /* X2-105 */
+ /* Module B detection (low = present) */
+ MX7D_PAD_LCD_DATA20__GPIO3_IO25 0x7c /* X2-103 */
+ /* SMPS - AC input monitor (high = failure) */
+ MX7D_PAD_LCD_DATA07__GPIO3_IO12 0x7c /* X2-88 */
+ /* USB - Hub reset */
+ MX7D_PAD_LCD_DATA09__GPIO3_IO14 0x74 /* X2-92 */
+ >;
+ };
+
+ pinctrl_uart4: uart4grp {
+ fsl,pins = <
+ MX7D_PAD_SAI2_TX_SYNC__UART4_DCE_RX 0x7e /* X3-14 */
+ MX7D_PAD_SAI2_TX_BCLK__UART4_DCE_TX 0x76 /* X3-16 */
+ >;
+ };
+
+ pinctrl_restart: restartgrp {
+ fsl,pins = <
+ MX7D_PAD_ENET1_TX_CLK__GPIO7_IO12 0x74 /* X1-94 */
+ >;
+ };
+};
+
+&iomuxc_lpsr {
+ pinctrl_usbotg2: usbotg2grp {
+ fsl,pins = <
+ MX7D_PAD_LPSR_GPIO1_IO06__USB_OTG2_OC 0x5c /* X3-11 */
+ MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x59 /* X3-9 */
+ >;
+ };
+
+};
+
+&usbotg2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usbotg2>;
+ vbus-supply = <&reg_usb_otg2_vbus>;
+ srp-disable;
+ hnp-disable;
+ adp-disable;
+ dr_mode = "host";
+ status = "okay";
+};
+
+&uart4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart4>;
+ assigned-clocks = <&clks IMX7D_UART4_ROOT_SRC>;
+ assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
+};
--
2.26.2

2020-07-13 02:33:14

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH 1/3] dt-bindings: ARM: imx: add kamstrup flex concentrator to schema

On Mon, Jun 29, 2020 at 01:49:25PM +0200, Bruno Thomsen wrote:
> Add Kamstrup flex concentrator compatibles to the schema so we can
> make use of them for the validation.
>
> Signed-off-by: Bruno Thomsen <[email protected]>

'dt-bindings: fsl: ...' should be just fine as subject prefix.

Shawn

> ---
> Documentation/devicetree/bindings/arm/fsl.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
> index 05906e291e38..66627b272e40 100644
> --- a/Documentation/devicetree/bindings/arm/fsl.yaml
> +++ b/Documentation/devicetree/bindings/arm/fsl.yaml
> @@ -299,6 +299,8 @@ properties:
> - enum:
> - fsl,imx7d-sdb # i.MX7 SabreSD Board
> - fsl,imx7d-sdb-reva # i.MX7 SabreSD Rev-A Board
> + - kam,imx7d-flex-concentrator # Kamstrup OMNIA Flex Concentrator
> + - kam,imx7d-flex-concentrator-mfg # Kamstrup OMNIA Flex Concentrator in manufacturing mode
> - novtech,imx7d-meerkat96 # i.MX7 Meerkat96 Board
> - technexion,imx7d-pico-dwarf # TechNexion i.MX7D Pico-Dwarf
> - technexion,imx7d-pico-hobbit # TechNexion i.MX7D Pico-Hobbit
>
> base-commit: 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68
> --
> 2.26.2
>

2020-07-13 02:54:05

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH 2/3] ARM: dts: imx7: add support for kamstrup flex concentrator

On Mon, Jun 29, 2020 at 01:49:26PM +0200, Bruno Thomsen wrote:
> This adds support for the OMNIA Flex Concentrator product
> from Kamstrup A/S. It's providing radio mesh communication
> infrastructure for smart electricity meters.
>
> Kamstrup OMNIA is a modular and scalable smart grid platform.
>
> Signed-off-by: Bruno Thomsen <[email protected]>
> ---
> arch/arm/boot/dts/Makefile | 2 +
> .../boot/dts/imx7d-flex-concentrator-mfg.dts | 25 ++
> arch/arm/boot/dts/imx7d-flex-concentrator.dts | 307 ++++++++++++++++++
> 3 files changed, 334 insertions(+)
> create mode 100644 arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dts
> create mode 100644 arch/arm/boot/dts/imx7d-flex-concentrator.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index e6a1cac0bfc7..bf5c5d86a2e8 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -628,6 +628,8 @@ dtb-$(CONFIG_SOC_IMX7D) += \
> imx7d-colibri-emmc-aster.dtb \
> imx7d-colibri-emmc-eval-v3.dtb \
> imx7d-colibri-eval-v3.dtb \
> + imx7d-flex-concentrator.dtb \
> + imx7d-flex-concentrator-mfg.dtb \
> imx7d-mba7.dtb \
> imx7d-meerkat96.dtb \
> imx7d-nitrogen7.dtb \
> diff --git a/arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dts b/arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dts
> new file mode 100644
> index 000000000000..789f0837058f
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dts
> @@ -0,0 +1,25 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Device Tree Source for Kamstrup OMNIA Flex Concentrator in
> + * manufacturing/debugging mode.
> + *
> + * Copyright (C) 2020 Kamstrup A/S
> + * Author: Bruno Thomsen <[email protected]>
> + */
> +
> +/dts-v1/;
> +
> +#include "imx7d-flex-concentrator.dts"
> +
> +/ {
> + model = "Kamstrup OMNIA Flex Concentrator - Manufacturing";
> + compatible = "kam,imx7d-flex-concentrator-mfg", "kam,imx7d-flex-concentrator", "fsl,imx7d";
> +
> + chosen {
> + stdout-path = &uart4;
> + };
> +};
> +
> +&uart4 {
> + status = "okay";
> +};
> diff --git a/arch/arm/boot/dts/imx7d-flex-concentrator.dts b/arch/arm/boot/dts/imx7d-flex-concentrator.dts
> new file mode 100644
> index 000000000000..887135cca650
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx7d-flex-concentrator.dts
> @@ -0,0 +1,307 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Device Tree Source for Kamstrup OMNIA Flex Concentrator.
> + *
> + * Copyright (C) 2020 Kamstrup A/S
> + * Author: Bruno Thomsen <[email protected]>
> + */
> +
> +/dts-v1/;
> +
> +#include "imx7d-tqma7.dtsi"
> +
> +/* Some I2C devices on TQMa7 SoM are not mounted */
> +/delete-node/ &m24c64;
> +/delete-node/ &ds1339;
> +
> +/ {
> + model = "Kamstrup OMNIA Flex Concentrator";
> + compatible = "kam,imx7d-flex-concentrator", "fsl,imx7d";
> +
> + memory@80000000 {
> + device_type = "memory";
> + /* 1024 MB - TQMa7D board configuration */
> + reg = <0x80000000 0x40000000>;
> + };
> +
> + reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
> + compatible = "regulator-fixed";
> + regulator-name = "VBUS_USBOTG2";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_vref_1v8: regulator-vref-1v8 {
> + compatible = "regulator-fixed";
> + regulator-name = "VCC1V8_REF";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + vin-supply = <&sw2_reg>;
> + };
> +
> + /*
> + * Human Machine Interface consists of 4 dual red/green LEDs.
> + * hmi-a-green is controlled directly by the switch-mode power supply.
> + * hmi-a-red is not used.
> + */
> + gpio-leds {
> + compatible = "gpio-leds";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_leds>;
> +
> + hmi-b-red {
> + label = "hmi-b:red:provisioning";
> + gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + hmi-b-green {
> + label = "hmi-b:green:operation";
> + gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + hmi-c-red {
> + label = "hmi-c:red:mesh-error";
> + gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + hmi-c-green {
> + label = "hmi-c:green:mesh-activity";
> + gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + hmi-d-red {
> + label = "hmi-d:red:wan-down";
> + gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> +
> + hmi-d-green {
> + label = "hmi-d:green:ipsec-up";
> + gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + };
> + };
> +
> + /*
> + * Errata e10574 board restart workaround.
> + */
> + gpio-restart {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_restart>;
> + compatible = "gpio-restart";
> + gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
> + priority = <200>;
> + };
> +};
> +
> +/*
> + * External watchdog feature provided by pcf2127.
> + */
> +&wdog1 {

Please keep these labeling nodes sort alphabetically.

> + status = "disabled";
> +};
> +
> +/*
> + * Detection signals for internal USB modules.
> + * Used for robust USB plug and play handling such as USB downstream port
> + * power-cycle and USB hub reset in case of misbehaving or crashed modules.
> + *
> + * SMPS - AC input monitor based on zero crossing.
> + * Used for last gasp notification.
> + */
> +&gpio3 {
> + gpio-line-names = "", "", "", "", "", "", "", "",
> + "", "", "", "", "smps-ac-monitor", "", "usb-hub-reset", "",
> + "", "", "", "", "", "", "", "",
> + "", "module-b-detection", "", "module-a-detection", "", "", "", "";
> +};
> +
> +/*
> + * Tamper IRQ trigger timestamp reading.
> + * Used for sealed cover opened notification.
> + */
> +&gpio5 {
> + gpio-line-names = "", "", "", "", "", "", "", "",
> + "", "", "", "", "rtc-tamper-irq", "", "", "",
> + "", "", "", "", "", "", "", "",
> + "", "", "", "", "", "", "", "";
> +};
> +
> +/*
> + * Analog signals
> + * ADC1_IN0: SMPS - 5V output monitor (voltage divider: 1/0.2806)
> + */
> +&adc1 {
> + vref-supply = <&reg_vref_1v8>;
> + status = "okay";
> +};
> +
> +&ecspi2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_ecspi2>;
> + num-chipselects = <1>;
> + cs-gpios = <&gpio4 23 GPIO_ACTIVE_LOW>;
> + status = "okay";
> +
> + pcf2127: rtc@0 {
> + compatible = "nxp,pcf2127";
> + reg = <0>;
> + spi-max-frequency = <2000000>;
> + };
> +};
> +
> +&ecspi4 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_ecspi4>;
> + num-chipselects = <1>;
> + cs-gpios = <&gpio3 3 GPIO_ACTIVE_LOW>;
> + status = "okay";
> +
> + /*
> + * ST chip maximum SPI clock frequency is 33 MHz.
> + *
> + * TCG specification - Section 6.4.1 Clocking:
> + * TPM shall support a SPI clock frequency range of 10-24 MHz.
> + */
> + st33htph: tpm-tis@0 {
> + compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi";
> + reg = <0>;
> + spi-max-frequency = <24000000>;
> + };
> +};
> +
> +&fec1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_enet1>;
> + phy-mode = "rmii";
> + phy-reset-gpios = <&gpio7 15 GPIO_ACTIVE_LOW>;
> + phy-reset-duration = <100>;
> + phy-reset-post-delay = <1000>;

These properties are deprecated.

> + phy-handle = <&ethphy>;
> + status = "okay";
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + ethphy: ethernet-phy@1 {
> + /* Micrel KSZ8051RNLV */
> + compatible = "ethernet-phy-ieee802.3-c22";
> + reg = <1>;
> + };
> + };
> +};
> +
> +&iomuxc {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_misc>;
> +
> + pinctrl_ecspi2: ecspi2grp {
> + fsl,pins = <
> + MX7D_PAD_ECSPI2_MISO__ECSPI2_MISO 0x7c /* X2-15 */
> + MX7D_PAD_ECSPI2_MOSI__ECSPI2_MOSI 0x74 /* X2-18 */
> + MX7D_PAD_ECSPI2_SCLK__ECSPI2_SCLK 0x74 /* X2-13 */
> + MX7D_PAD_ECSPI2_SS0__GPIO4_IO23 0x74 /* X2-20 */
> + /* RTC - Tamper IRQ */
> + MX7D_PAD_SD2_CLK__GPIO5_IO12 0x3c /* X1-92 */
> + >;
> + };
> +
> + pinctrl_ecspi4: ecspi4grp {
> + fsl,pins = <
> + MX7D_PAD_LCD_CLK__ECSPI4_MISO 0x7c /* X2-72 */
> + MX7D_PAD_LCD_ENABLE__ECSPI4_MOSI 0x74 /* X2-68 */
> + MX7D_PAD_LCD_HSYNC__ECSPI4_SCLK 0x74 /* X2-76 */
> + MX7D_PAD_LCD_VSYNC__GPIO3_IO3 0x74 /* X2-78 */
> + >;
> + };
> +
> + pinctrl_leds: ledsgrp {
> + fsl,pins = <
> + MX7D_PAD_LCD_DATA01__GPIO3_IO6 0x14 /* X2-82 */
> + MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x14 /* X1-82 */
> + MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x14 /* X1-84 */
> + MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30 0x14 /* X1-86 */
> + MX7D_PAD_EPDC_PWR_STAT__GPIO2_IO31 0x14 /* X1-88 */
> + MX7D_PAD_UART2_TX_DATA__GPIO4_IO3 0x14 /* X1-90 */
> + >;
> + };
> +
> + pinctrl_enet1: enet1grp {

Please keep these pinctrl entries sort alphabetically.

Shawn

> + fsl,pins = <
> + MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x03 /* X2-48 */
> + MX7D_PAD_GPIO1_IO11__ENET1_MDC 0x03 /* X2-46 */
> + MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x71 /* X2-53 */
> + MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x71 /* X2-55 */
> + MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x71 /* X2-61 */
> + MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x79 /* X2-56 */
> + MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x79 /* X2-58 */
> + MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x79 /* X2-64 */
> + MX7D_PAD_ENET1_RGMII_RXC__ENET1_RX_ER 0x73 /* X2-52 */
> + /* PHY reset: SION, 100kPU, SRE_FAST, DSE_X1 */
> + MX7D_PAD_ENET1_COL__GPIO7_IO15 0x40000070 /* X1-96 */
> + /* Clock from PHY to MAC */
> + MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x40000073 /* X3-4 */
> + >;
> + };
> +
> + pinctrl_misc: miscgrp {
> + fsl,pins = <
> + /* Module A detection (low = present) */
> + MX7D_PAD_LCD_DATA22__GPIO3_IO27 0x7c /* X2-105 */
> + /* Module B detection (low = present) */
> + MX7D_PAD_LCD_DATA20__GPIO3_IO25 0x7c /* X2-103 */
> + /* SMPS - AC input monitor (high = failure) */
> + MX7D_PAD_LCD_DATA07__GPIO3_IO12 0x7c /* X2-88 */
> + /* USB - Hub reset */
> + MX7D_PAD_LCD_DATA09__GPIO3_IO14 0x74 /* X2-92 */
> + >;
> + };
> +
> + pinctrl_uart4: uart4grp {
> + fsl,pins = <
> + MX7D_PAD_SAI2_TX_SYNC__UART4_DCE_RX 0x7e /* X3-14 */
> + MX7D_PAD_SAI2_TX_BCLK__UART4_DCE_TX 0x76 /* X3-16 */
> + >;
> + };
> +
> + pinctrl_restart: restartgrp {
> + fsl,pins = <
> + MX7D_PAD_ENET1_TX_CLK__GPIO7_IO12 0x74 /* X1-94 */
> + >;
> + };
> +};
> +
> +&iomuxc_lpsr {
> + pinctrl_usbotg2: usbotg2grp {
> + fsl,pins = <
> + MX7D_PAD_LPSR_GPIO1_IO06__USB_OTG2_OC 0x5c /* X3-11 */
> + MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x59 /* X3-9 */
> + >;
> + };
> +
> +};
> +
> +&usbotg2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usbotg2>;
> + vbus-supply = <&reg_usb_otg2_vbus>;
> + srp-disable;
> + hnp-disable;
> + adp-disable;
> + dr_mode = "host";
> + status = "okay";
> +};
> +
> +&uart4 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart4>;
> + assigned-clocks = <&clks IMX7D_UART4_ROOT_SRC>;
> + assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
> +};
> --
> 2.26.2
>

2020-07-13 02:57:11

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH 3/3] MAINTAINERS: Add Bruno Thomsen as reviewer of Kamstrup DTS

On Mon, Jun 29, 2020 at 01:49:27PM +0200, Bruno Thomsen wrote:
> Add myself as reviewer of device trees for Kamstrup
> Concentrators.
>
> Signed-off-by: Bruno Thomsen <[email protected]>
> ---
> MAINTAINERS | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 496fd4eafb68..97fc112309af 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9282,6 +9282,11 @@ S: Maintained
> F: Documentation/hwmon/k8temp.rst
> F: drivers/hwmon/k8temp.c
>
> +KAMSTRUP CONCENTRATORS
> +R: Bruno Thomsen <[email protected]>
> +S: Maintained
> +F: arch/arm/boot/dts/imx7d-flex-concentrator*.dts
> +

I guess get_maintainer.pl should list you for patches touching the
files, so it's not really required? I'm worried about that MAINTAINERS
file will get bloated quickly if we patch it for every single DTS
file.

Shawn

> KASAN
> M: Andrey Ryabinin <[email protected]>
> R: Alexander Potapenko <[email protected]>
> --
> 2.26.2
>

2020-07-13 05:23:22

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 3/3] MAINTAINERS: Add Bruno Thomsen as reviewer of Kamstrup DTS

On Mon, 2020-07-13 at 10:56 +0800, Shawn Guo wrote:
> On Mon, Jun 29, 2020 at 01:49:27PM +0200, Bruno Thomsen wrote:
> > Add myself as reviewer of device trees for Kamstrup
> > Concentrators.
> >
> > Signed-off-by: Bruno Thomsen <[email protected]>
> > ---
> > MAINTAINERS | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 496fd4eafb68..97fc112309af 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -9282,6 +9282,11 @@ S: Maintained
> > F: Documentation/hwmon/k8temp.rst
> > F: drivers/hwmon/k8temp.c
> >
> > +KAMSTRUP CONCENTRATORS
> > +R: Bruno Thomsen <[email protected]>
> > +S: Maintained
> > +F: arch/arm/boot/dts/imx7d-flex-concentrator*.dts
> > +
>
> I guess get_maintainer.pl should list you for patches touching the
> files, so it's not really required? I'm worried about that MAINTAINERS
> file will get bloated quickly if we patch it for every single DTS
> file.

Right now, a little less than half of the .dts* files
have an author or other email address in them.

$ git ls-files arch/arm/boot/dts/*.dts* | wc -l
2105

$ git grep -P --name-only '<\S+@\S+>' arch/arm/boot/dts/*.dts* | wc -l
997

Some have multiple email addresses:

$ git grep -P '<\S+@\S+>' arch/arm/boot/dts/*.dts* | wc -l
1240

(and there are a few false positives in that regex)

I suppose that get_maintainer could handle .dts* files
the same way .yaml files are handled so any email address
in the file is added to patches that touch the file.

This is the commit that added the .yaml file handling:

commit 0c78c013762142bfe8fce34e7e968f83f0a4b891
Author: Joe Perches <[email protected]>
Date: Thu Jun 4 16:50:01 2020 -0700

get_maintainer: add email addresses from .yaml files

.yaml files can contain maintainer/author addresses and it seems unlikely
or unnecessary that individual MAINTAINER file section entries for each
.yaml file will be created.

So add the email addresses found in .yaml files to the default
get_maintainer output.

The email addresses are marked with "(in file)" when using the "--roles"
or "--rolestats" options.

So something like:
---
scripts/get_maintainer.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 484d2fbf5921..4c3c69d7bed0 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -436,7 +436,7 @@ sub maintainers_in_file {

return if ($file =~ m@\bMAINTAINERS$@);

- if (-f $file && ($email_file_emails || $file =~ /\.yaml$/)) {
+ if (-f $file && ($email_file_emails || $file =~ /\.(?:yaml|dtsi?)$/)) {
open(my $f, '<', $file)
or die "$P: Can't open $file: $!\n";
my $text = do { local($/) ; <$f> };


2020-07-13 07:16:18

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH 3/3] MAINTAINERS: Add Bruno Thomsen as reviewer of Kamstrup DTS

On Sun, Jul 12, 2020 at 10:22:50PM -0700, Joe Perches wrote:
> Right now, a little less than half of the .dts* files
> have an author or other email address in them.
>
> $ git ls-files arch/arm/boot/dts/*.dts* | wc -l
> 2105
>
> $ git grep -P --name-only '<\S+@\S+>' arch/arm/boot/dts/*.dts* | wc -l
> 997
>
> Some have multiple email addresses:
>
> $ git grep -P '<\S+@\S+>' arch/arm/boot/dts/*.dts* | wc -l
> 1240
>
> (and there are a few false positives in that regex)
>
> I suppose that get_maintainer could handle .dts* files
> the same way .yaml files are handled so any email address
> in the file is added to patches that touch the file.
>
> This is the commit that added the .yaml file handling:
>
> commit 0c78c013762142bfe8fce34e7e968f83f0a4b891
> Author: Joe Perches <[email protected]>
> Date: Thu Jun 4 16:50:01 2020 -0700
>
> get_maintainer: add email addresses from .yaml files
>
> .yaml files can contain maintainer/author addresses and it seems unlikely
> or unnecessary that individual MAINTAINER file section entries for each
> .yaml file will be created.
>
> So add the email addresses found in .yaml files to the default
> get_maintainer output.
>
> The email addresses are marked with "(in file)" when using the "--roles"
> or "--rolestats" options.
>
> So something like:

Yeah, that's helpful.

> ---
> scripts/get_maintainer.pl | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
> index 484d2fbf5921..4c3c69d7bed0 100755
> --- a/scripts/get_maintainer.pl
> +++ b/scripts/get_maintainer.pl
> @@ -436,7 +436,7 @@ sub maintainers_in_file {
>
> return if ($file =~ m@\bMAINTAINERS$@);
>
> - if (-f $file && ($email_file_emails || $file =~ /\.yaml$/)) {
> + if (-f $file && ($email_file_emails || $file =~ /\.(?:yaml|dtsi?)$/)) {

It should cover .dts file too?

Shawn

> open(my $f, '<', $file)
> or die "$P: Can't open $file: $!\n";
> my $text = do { local($/) ; <$f> };
>
>

2020-07-13 07:27:25

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 3/3] MAINTAINERS: Add Bruno Thomsen as reviewer of Kamstrup DTS

On Mon, 2020-07-13 at 15:13 +0800, Shawn Guo wrote:
> On Sun, Jul 12, 2020 at 10:22:50PM -0700, Joe Perches wrote:
[]
> > diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
[]
> > @@ -436,7 +436,7 @@ sub maintainers_in_file {
> >
> > return if ($file =~ m@\bMAINTAINERS$@);
> >
> > - if (-f $file && ($email_file_emails || $file =~ /\.yaml$/)) {
> > + if (-f $file && ($email_file_emails || $file =~ /\.(?:yaml|dtsi?)$/)) {
>
> It should cover .dts file too?

It does as dtsi? means the i is optional.


2020-07-13 07:34:45

by Bruno Thomsen

[permalink] [raw]
Subject: Re: [PATCH 3/3] MAINTAINERS: Add Bruno Thomsen as reviewer of Kamstrup DTS

Den man. 13. jul. 2020 kl. 09.26 skrev Joe Perches <[email protected]>:
>
> On Mon, 2020-07-13 at 15:13 +0800, Shawn Guo wrote:
> > On Sun, Jul 12, 2020 at 10:22:50PM -0700, Joe Perches wrote:
> []
> > > diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
> []
> > > @@ -436,7 +436,7 @@ sub maintainers_in_file {
> > >
> > > return if ($file =~ m@\bMAINTAINERS$@);
> > >
> > > - if (-f $file && ($email_file_emails || $file =~ /\.yaml$/)) {
> > > + if (-f $file && ($email_file_emails || $file =~ /\.(?:yaml|dtsi?)$/)) {
> >
> > It should cover .dts file too?
>
> It does as dtsi? means the i is optional.

It sounds like a good idea for handling dts reviewers.

Maybe we could also update script/checkpatch.pl to ignore
new dts/dtsi files and not suggest updating MAINTAINERS
file.

/Bruno

2020-07-14 10:04:55

by Bruno Thomsen

[permalink] [raw]
Subject: Re: [PATCH 2/3] ARM: dts: imx7: add support for kamstrup flex concentrator

Den man. 13. jul. 2020 kl. 04.52 skrev Shawn Guo <[email protected]>:
>
> On Mon, Jun 29, 2020 at 01:49:26PM +0200, Bruno Thomsen wrote:
> > +&fec1 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_enet1>;
> > + phy-mode = "rmii";
> > + phy-reset-gpios = <&gpio7 15 GPIO_ACTIVE_LOW>;
> > + phy-reset-duration = <100>;
> > + phy-reset-post-delay = <1000>;
>
> These properties are deprecated.

Thanks for review Shawn.

I have not yet been successful in converting the deprecated properties
to generic phy properties, so hoping I could get a hit.

Kernel error messages:
mdio_bus 30be0000.ethernet-1: MDIO device at address 1 is missing.
fec 30be0000.ethernet eth0: Unable to connect to phy

Updated device tree section:
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet1>;
phy-mode = "rmii";
phy-handle = <&ethphy>;
status = "okay";

mdio {
#address-cells = <1>;
#size-cells = <0>;

ethphy: ethernet-phy@1 {
/* Micrel KSZ8051RNLV */
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
max-speed = <100>;

reset-assert-us = <100000>;
reset-deassert-us = <1000000>;
reset-gpios = <&gpio7 15 GPIO_ACTIVE_LOW>;
};
};
};

/Bruno

> > + phy-handle = <&ethphy>;
> > + status = "okay";
> > +
> > + mdio {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + ethphy: ethernet-phy@1 {
> > + /* Micrel KSZ8051RNLV */
> > + compatible = "ethernet-phy-ieee802.3-c22";
> > + reg = <1>;
> > + };
> > + };
> > +};

2020-07-14 11:56:57

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH 2/3] ARM: dts: imx7: add support for kamstrup flex concentrator

Hi Bruno,

On Tue, Jul 14, 2020 at 7:03 AM Bruno Thomsen <[email protected]> wrote:

> I have not yet been successful in converting the deprecated properties
> to generic phy properties, so hoping I could get a hit.
>
> Kernel error messages:
> mdio_bus 30be0000.ethernet-1: MDIO device at address 1 is missing.

Please double-check whether 1 is the correct address for the KSZ8051
Ethernet PHY as per your schematics.

Are there external pull-up/pull-down resistors for strapping the
various configuration pins for the PHY? Or are the pull-up/pull-down
provided by the i.MX7D pins?

If there are no external pull-ups, please make sure to configure the
pinctrl_enet1 accordingly, so that the Ethernet PHY address can be
properly configured and then mdio_bus driver can find it at the
correct address.

Please check in arch/arm/boot/dts/imx6qdl-sr-som.dtsi for an example
on how to configure the Ethernet PHY pin strapping via iMX IOMUX.

2020-07-15 15:11:35

by Bruno Thomsen

[permalink] [raw]
Subject: Re: [PATCH 2/3] ARM: dts: imx7: add support for kamstrup flex concentrator

Den tir. 14. jul. 2020 kl. 13.54 skrev Fabio Estevam <[email protected]>:
>
> Hi Bruno,
>
> On Tue, Jul 14, 2020 at 7:03 AM Bruno Thomsen <[email protected]> wrote:
>
> > I have not yet been successful in converting the deprecated properties
> > to generic phy properties, so hoping I could get a hit.
> >
> > Kernel error messages:
> > mdio_bus 30be0000.ethernet-1: MDIO device at address 1 is missing.
>
> Please double-check whether 1 is the correct address for the KSZ8051
> Ethernet PHY as per your schematics.

Hi Fabio,

Thanks for the hints.

Yes, the address is correct and configured with external resistors,
but just realised that I wrote the wrong device name in the comment,
it's actually KSZ8081RNB.

Ethernet has been working with multiple mainline kernel versions
(latest being 5.7.8)
for the last year or so when using the DTS in patch. So I am pretty sure
hardware and setup of mux is correct'ish.

Kernel trace from patch version:
kernel: Micrel KSZ8081 or KSZ8091 30be0000.ethernet-1:01: attached PHY driver
[Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=30be0000.ethernet-1:01, irq=POLL)

Error first occurs when switching from fec phy reset to mdio phy reset
code path,
I understand that the fec phy reset is obsolete as phy properties was wrongly
added to the mac and of course should be part of the phy (separate chip).

When debugging it I end up with the get_phy_device() call not working
inside of_mdiobus_register_phy().

Workaround at the moment seems to be extending compatible with
"ethernet-phy-id0022.1560" to disable auto detection of phy type,
and then Ethernet works again. At least the same PHY driver trace
can be found and full transmission speed can be used without packet
errors/loss.

> Are there external pull-up/pull-down resistors for strapping the
> various configuration pins for the PHY? Or are the pull-up/pull-down
> provided by the i.MX7D pins?

Config strapping is done with external resistors.

> If there are no external pull-ups, please make sure to configure the
> pinctrl_enet1 accordingly, so that the Ethernet PHY address can be
> properly configured and then mdio_bus driver can find it at the
> correct address.
>
> Please check in arch/arm/boot/dts/imx6qdl-sr-som.dtsi for an example
> on how to configure the Ethernet PHY pin strapping via iMX IOMUX.

Thanks, good examples can be hard to find.

/Bruno

2020-07-15 20:27:27

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/3] dt-bindings: ARM: imx: add kamstrup flex concentrator to schema

On Mon, 29 Jun 2020 13:49:25 +0200, Bruno Thomsen wrote:
> Add Kamstrup flex concentrator compatibles to the schema so we can
> make use of them for the validation.
>
> Signed-off-by: Bruno Thomsen <[email protected]>
> ---
> Documentation/devicetree/bindings/arm/fsl.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>

Acked-by: Rob Herring <[email protected]>

2020-07-15 20:31:34

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH 2/3] ARM: dts: imx7: add support for kamstrup flex concentrator

Hi Bruno,

On Wed, Jul 15, 2020 at 11:22 AM Bruno Thomsen <[email protected]> wrote:

> Thanks for the hints.
>
> Yes, the address is correct and configured with external resistors,
> but just realised that I wrote the wrong device name in the comment,
> it's actually KSZ8081RNB.
>
> Ethernet has been working with multiple mainline kernel versions
> (latest being 5.7.8)
> for the last year or so when using the DTS in patch. So I am pretty sure
> hardware and setup of mux is correct'ish.
>
> Kernel trace from patch version:
> kernel: Micrel KSZ8081 or KSZ8091 30be0000.ethernet-1:01: attached PHY driver
> [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=30be0000.ethernet-1:01, irq=POLL)
>
> Error first occurs when switching from fec phy reset to mdio phy reset
> code path,
> I understand that the fec phy reset is obsolete as phy properties was wrongly
> added to the mac and of course should be part of the phy (separate chip).
>
> When debugging it I end up with the get_phy_device() call not working
> inside of_mdiobus_register_phy().

It would be nice if you could report this to the Ethernet PHY folks at
[email protected]