* [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier
@ 2024-09-24 11:40 Francesco Dolcini
2024-09-24 11:40 ` [PATCH v1 1/3] dt-bindings: arm: freescale: Add verdin imx8mp ivy board Francesco Dolcini
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: Francesco Dolcini @ 2024-09-24 11:40 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Francesco Dolcini, devicetree, linux-kernel, imx,
linux-arm-kernel
From: Francesco Dolcini <francesco.dolcini@toradex.com>
Add support for the Toradex Verdin iMX8MP Ivy carrier board. Ivy is a carrier
board designed for industrial environments, supporting industrial
I/O interfaces such as CAN, RS485, RS232, Gigabit Ethernet, 0-25mA analog
inputs, relays, PCIe and more. The board also includes a TPM for security
applications.
https://www.toradex.com/products/carrier-board/ivy-carrier-board
João Paulo Gonçalves (3):
dt-bindings: arm: freescale: Add verdin imx8mp ivy board
arm64: dts: freescale: imx8mp-verdin: add labels to som nodes
arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board
.../devicetree/bindings/arm/fsl.yaml | 2 +
arch/arm64/boot/dts/freescale/Makefile | 2 +
.../boot/dts/freescale/imx8mp-verdin-ivy.dtsi | 512 ++++++++++++++++++
.../freescale/imx8mp-verdin-nonwifi-ivy.dts | 18 +
.../dts/freescale/imx8mp-verdin-wifi-ivy.dts | 18 +
.../boot/dts/freescale/imx8mp-verdin.dtsi | 5 +-
6 files changed, 555 insertions(+), 2 deletions(-)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts
--
2.39.5
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v1 1/3] dt-bindings: arm: freescale: Add verdin imx8mp ivy board 2024-09-24 11:40 [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Francesco Dolcini @ 2024-09-24 11:40 ` Francesco Dolcini 2024-09-24 15:34 ` Conor Dooley 2024-09-24 11:40 ` [PATCH v1 2/3] arm64: dts: freescale: imx8mp-verdin: add labels to som nodes Francesco Dolcini ` (3 subsequent siblings) 4 siblings, 1 reply; 13+ messages in thread From: Francesco Dolcini @ 2024-09-24 11:40 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo Cc: João Paulo Gonçalves, devicetree, linux-kernel, Francesco Dolcini From: João Paulo Gonçalves <joao.goncalves@toradex.com> Add Toradex Verdin Ivy carrier board support. https://www.toradex.com/products/carrier-board/ivy-carrier-board Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> --- 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 b39a7e031177..7413759ed240 100644 --- a/Documentation/devicetree/bindings/arm/fsl.yaml +++ b/Documentation/devicetree/bindings/arm/fsl.yaml @@ -1137,6 +1137,7 @@ properties: - enum: - toradex,verdin-imx8mp-nonwifi-dahlia # Verdin iMX8M Plus Module on Dahlia - toradex,verdin-imx8mp-nonwifi-dev # Verdin iMX8M Plus Module on Verdin Development Board + - toradex,verdin-imx8mp-nonwifi-ivy # Verdin iMX8M Plus Module on Ivy - toradex,verdin-imx8mp-nonwifi-mallow # Verdin iMX8M Plus Module on Mallow - toradex,verdin-imx8mp-nonwifi-yavia # Verdin iMX8M Plus Module on Yavia - const: toradex,verdin-imx8mp-nonwifi # Verdin iMX8M Plus Module without Wi-Fi / BT @@ -1148,6 +1149,7 @@ properties: - enum: - toradex,verdin-imx8mp-wifi-dahlia # Verdin iMX8M Plus Wi-Fi / BT Module on Dahlia - toradex,verdin-imx8mp-wifi-dev # Verdin iMX8M Plus Wi-Fi / BT M. on Verdin Development B. + - toradex,verdin-imx8mp-wifi-ivy # Verdin iMX8M Plus Wi-Fi / BT Module on Ivy - toradex,verdin-imx8mp-wifi-mallow # Verdin iMX8M Plus Wi-Fi / BT Module on Mallow - toradex,verdin-imx8mp-wifi-yavia # Verdin iMX8M Plus Wi-Fi / BT Module on Yavia - const: toradex,verdin-imx8mp-wifi # Verdin iMX8M Plus Wi-Fi / BT Module -- 2.39.5 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v1 1/3] dt-bindings: arm: freescale: Add verdin imx8mp ivy board 2024-09-24 11:40 ` [PATCH v1 1/3] dt-bindings: arm: freescale: Add verdin imx8mp ivy board Francesco Dolcini @ 2024-09-24 15:34 ` Conor Dooley 0 siblings, 0 replies; 13+ messages in thread From: Conor Dooley @ 2024-09-24 15:34 UTC (permalink / raw) To: Francesco Dolcini Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, João Paulo Gonçalves, devicetree, linux-kernel, Francesco Dolcini [-- Attachment #1: Type: text/plain, Size: 447 bytes --] On Tue, Sep 24, 2024 at 01:40:51PM +0200, Francesco Dolcini wrote: > From: João Paulo Gonçalves <joao.goncalves@toradex.com> > > Add Toradex Verdin Ivy carrier board support. > > https://www.toradex.com/products/carrier-board/ivy-carrier-board > > Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v1 2/3] arm64: dts: freescale: imx8mp-verdin: add labels to som nodes 2024-09-24 11:40 [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Francesco Dolcini 2024-09-24 11:40 ` [PATCH v1 1/3] dt-bindings: arm: freescale: Add verdin imx8mp ivy board Francesco Dolcini @ 2024-09-24 11:40 ` Francesco Dolcini 2024-09-24 15:02 ` Frank Li 2024-09-24 11:40 ` [PATCH v1 3/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board Francesco Dolcini ` (2 subsequent siblings) 4 siblings, 1 reply; 13+ messages in thread From: Francesco Dolcini @ 2024-09-24 11:40 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam Cc: João Paulo Gonçalves, devicetree, imx, linux-arm-kernel, linux-kernel, Francesco Dolcini From: João Paulo Gonçalves <joao.goncalves@toradex.com> Add labels to ti-ads1015 and fec ethernet mdio node to make it easier to reference them from other nodes. Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> --- arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi index a19ad5ee7f79..e9518b7c7aa8 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi @@ -320,7 +320,7 @@ &fec { pinctrl-0 = <&pinctrl_fec>; pinctrl-1 = <&pinctrl_fec_sleep>; - mdio { + verdin_eth2_mdio: mdio { #address-cells = <1>; #size-cells = <0>; @@ -591,11 +591,12 @@ hwmon_temp_module: sensor@48 { vs-supply = <®_vdd_1v8>; }; - adc@49 { + verdin_som_adc: adc@49 { compatible = "ti,ads1015"; reg = <0x49>; #address-cells = <1>; #size-cells = <0>; + #io-channel-cells = <1>; /* Verdin I2C_1 (ADC_4 - ADC_3) */ channel@0 { -- 2.39.5 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v1 2/3] arm64: dts: freescale: imx8mp-verdin: add labels to som nodes 2024-09-24 11:40 ` [PATCH v1 2/3] arm64: dts: freescale: imx8mp-verdin: add labels to som nodes Francesco Dolcini @ 2024-09-24 15:02 ` Frank Li 2024-09-24 17:02 ` João Paulo Gonçalves 0 siblings, 1 reply; 13+ messages in thread From: Frank Li @ 2024-09-24 15:02 UTC (permalink / raw) To: Francesco Dolcini Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, João Paulo Gonçalves, devicetree, imx, linux-arm-kernel, linux-kernel, Francesco Dolcini On Tue, Sep 24, 2024 at 01:40:52PM +0200, Francesco Dolcini wrote: > From: João Paulo Gonçalves <joao.goncalves@toradex.com> > > Add labels to ti-ads1015 and fec ethernet mdio node to make it easier to > reference them from other nodes. > > Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> > --- > arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > index a19ad5ee7f79..e9518b7c7aa8 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > @@ -320,7 +320,7 @@ &fec { > pinctrl-0 = <&pinctrl_fec>; > pinctrl-1 = <&pinctrl_fec_sleep>; > > - mdio { > + verdin_eth2_mdio: mdio { > #address-cells = <1>; > #size-cells = <0>; > > @@ -591,11 +591,12 @@ hwmon_temp_module: sensor@48 { > vs-supply = <®_vdd_1v8>; > }; > > - adc@49 { > + verdin_som_adc: adc@49 { > compatible = "ti,ads1015"; > reg = <0x49>; > #address-cells = <1>; > #size-cells = <0>; > + #io-channel-cells = <1>; Why add this? it is not related with what descript in commit message Frank > > /* Verdin I2C_1 (ADC_4 - ADC_3) */ > channel@0 { > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 2/3] arm64: dts: freescale: imx8mp-verdin: add labels to som nodes 2024-09-24 15:02 ` Frank Li @ 2024-09-24 17:02 ` João Paulo Gonçalves 2024-09-25 16:53 ` Frank Li 0 siblings, 1 reply; 13+ messages in thread From: João Paulo Gonçalves @ 2024-09-24 17:02 UTC (permalink / raw) To: Frank Li Cc: Francesco Dolcini, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, João Paulo Gonçalves, devicetree, imx, linux-arm-kernel, linux-kernel, Francesco Dolcini Hi Frank, On Tue, Sep 24, 2024 at 11:02:50AM -0400, Frank Li wrote: > On Tue, Sep 24, 2024 at 01:40:52PM +0200, Francesco Dolcini wrote: > > From: João Paulo Gonçalves <joao.goncalves@toradex.com> > > > > Add labels to ti-ads1015 and fec ethernet mdio node to make it easier to > > reference them from other nodes. > > > > Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> > > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> > > --- > > arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > > index a19ad5ee7f79..e9518b7c7aa8 100644 > > --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > > @@ -320,7 +320,7 @@ &fec { > > pinctrl-0 = <&pinctrl_fec>; > > pinctrl-1 = <&pinctrl_fec_sleep>; > > > > - mdio { > > + verdin_eth2_mdio: mdio { > > #address-cells = <1>; > > #size-cells = <0>; > > > > @@ -591,11 +591,12 @@ hwmon_temp_module: sensor@48 { > > vs-supply = <®_vdd_1v8>; > > }; > > > > - adc@49 { > > + verdin_som_adc: adc@49 { > > compatible = "ti,ads1015"; > > reg = <0x49>; > > #address-cells = <1>; > > #size-cells = <0>; > > + #io-channel-cells = <1>; > > Why add this? it is not related with what descript in commit message The #io-channel-cells property is required to reference the ADC node as an IIO channel producer in consumer nodes, otherwise, DT check warnings will occur. I agree that the commit message could be improved, but I consider this a minor issue. Would it be acceptable to keep it as is, or would you prefer a v2? Best Regards, João Paulo Gonçalves ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 2/3] arm64: dts: freescale: imx8mp-verdin: add labels to som nodes 2024-09-24 17:02 ` João Paulo Gonçalves @ 2024-09-25 16:53 ` Frank Li 0 siblings, 0 replies; 13+ messages in thread From: Frank Li @ 2024-09-25 16:53 UTC (permalink / raw) To: João Paulo Gonçalves Cc: Francesco Dolcini, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, João Paulo Gonçalves, devicetree, imx, linux-arm-kernel, linux-kernel, Francesco Dolcini On Tue, Sep 24, 2024 at 02:02:54PM -0300, João Paulo Gonçalves wrote: > Hi Frank, > > On Tue, Sep 24, 2024 at 11:02:50AM -0400, Frank Li wrote: > > On Tue, Sep 24, 2024 at 01:40:52PM +0200, Francesco Dolcini wrote: > > > From: João Paulo Gonçalves <joao.goncalves@toradex.com> > > > > > > Add labels to ti-ads1015 and fec ethernet mdio node to make it easier to > > > reference them from other nodes. > > > > > > Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> > > > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> > > > --- > > > arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 5 +++-- > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > > > index a19ad5ee7f79..e9518b7c7aa8 100644 > > > --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > > > +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi > > > @@ -320,7 +320,7 @@ &fec { > > > pinctrl-0 = <&pinctrl_fec>; > > > pinctrl-1 = <&pinctrl_fec_sleep>; > > > > > > - mdio { > > > + verdin_eth2_mdio: mdio { > > > #address-cells = <1>; > > > #size-cells = <0>; > > > > > > @@ -591,11 +591,12 @@ hwmon_temp_module: sensor@48 { > > > vs-supply = <®_vdd_1v8>; > > > }; > > > > > > - adc@49 { > > > + verdin_som_adc: adc@49 { > > > compatible = "ti,ads1015"; > > > reg = <0x49>; > > > #address-cells = <1>; > > > #size-cells = <0>; > > > + #io-channel-cells = <1>; > > > > Why add this? it is not related with what descript in commit message > > The #io-channel-cells property is required to reference the ADC > node as an IIO channel producer in consumer nodes, otherwise, DT check > warnings will occur. I agree that the commit message could be improved, > but I consider this a minor issue. Would it be acceptable to keep it as > is, or would you prefer a v2? Personally, I like one patch fix one problem. I am okay if mentioned in commit message. Anyway, it is up to guo shanw's opinion. Frank > > Best Regards, > João Paulo Gonçalves ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v1 3/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board 2024-09-24 11:40 [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Francesco Dolcini 2024-09-24 11:40 ` [PATCH v1 1/3] dt-bindings: arm: freescale: Add verdin imx8mp ivy board Francesco Dolcini 2024-09-24 11:40 ` [PATCH v1 2/3] arm64: dts: freescale: imx8mp-verdin: add labels to som nodes Francesco Dolcini @ 2024-09-24 11:40 ` Francesco Dolcini 2024-09-24 15:09 ` Frank Li 2024-09-25 1:56 ` [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Rob Herring (Arm) 2024-10-17 9:29 ` Shawn Guo 4 siblings, 1 reply; 13+ messages in thread From: Francesco Dolcini @ 2024-09-24 11:40 UTC (permalink / raw) To: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: João Paulo Gonçalves, imx, linux-arm-kernel, devicetree, linux-kernel, Francesco Dolcini From: João Paulo Gonçalves <joao.goncalves@toradex.com> Add Toradex Verdin Ivy carrier board support. One notable feature of Ivy is the analog inputs. These inputs are multiplexed, allowing the same input to measure either voltage or current. For current measurements, a GPIO switch enables or disables the shunt resistor. This process is automatically managed by the Linux kernel using the IIO and MUX subsystems. Voltage measurement is always enabled, but the voltage measured by the ADC is scaled by a cascade voltage divider. In the device tree, the equivalent gain of the voltage divider is used, which can be calculated as follows: ------------ + | .-. R1=30K | | | | '-' |------------------- Analog Input (AIN) | | .-. .-. R2=10K | | R3=30K | | | | | | '-' '-' | | | |-------- | .-. + | R4=10K | | | | | ADC Input (Channels 0 and 1) | '-' - | | - -----------| |-------- === === GND GND Vin = Analog Input (AIN) Vout = ADC Input Rth = Thevenin Equiv. Resistance Vth = Thevenin Equiv. Voltage RL = Load Resistor R1 = 30K, R2 = 10K, R3 = 30K, R4 = 10K RL = R4 = 10K Rth = (R1 // R2) + R3 = 37500 Ohms Vth = (Vin * R2) / (R1 + R2) = Vin/4; Vout = (Vth * RL)/ (Rth + RL) = Vth/4.75 = Vin/19 Gain = Vout/Vin = 1/19 https://www.toradex.com/products/carrier-board/ivy-carrier-board Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> --- arch/arm64/boot/dts/freescale/Makefile | 2 + .../boot/dts/freescale/imx8mp-verdin-ivy.dtsi | 512 ++++++++++++++++++ .../freescale/imx8mp-verdin-nonwifi-ivy.dts | 18 + .../dts/freescale/imx8mp-verdin-wifi-ivy.dts | 18 + 4 files changed, 550 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 9d3df8b218a2..349ff1af0361 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -189,10 +189,12 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw75xx-2x.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-ivy.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-mallow.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-yavia.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-yavia.dtb diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi new file mode 100644 index 000000000000..db1b4ee7728c --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi @@ -0,0 +1,512 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2024 Toradex + * + * Common dtsi for Verdin IMX8MP SoM on Ivy carrier board + * + * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-plus + * https://www.toradex.com/products/carrier-board/ivy-carrier-board + */ + +#include <dt-bindings/mux/mux.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/net/ti-dp83867.h> + +/ { + /* AIN1 Voltage w/o AIN1_MODE gpio control */ + ain1_voltage_unmanaged: voltage-divider-ain1 { + compatible = "voltage-divider"; + #io-channel-cells = <1>; + io-channels = <&ivy_adc1 0>; + full-ohms = <19>; + output-ohms = <1>; + }; + + /* AIN1 Current w/o AIN1_MODE gpio control */ + ain1_current_unmanaged: current-sense-shunt-ain1 { + compatible = "current-sense-shunt"; + #io-channel-cells = <0>; + io-channels = <&ivy_adc1 1>; + shunt-resistor-micro-ohms = <100000000>; + }; + + /* AIN1_MODE - SODIMM 216 */ + ain1_mode_mux_ctrl: mux-controller-0 { + compatible = "gpio-mux"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio5>; + #mux-control-cells = <0>; + mux-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; + }; + + ain1-voltage { + compatible = "io-channel-mux"; + channels = "ain1_voltage", ""; + io-channels = <&ain1_voltage_unmanaged 0>; + io-channel-names = "parent"; + mux-controls = <&ain1_mode_mux_ctrl>; + settle-time-us = <1000>; + }; + + ain1-current { + compatible = "io-channel-mux"; + channels = "", "ain1_current"; + io-channels = <&ain1_current_unmanaged>; + io-channel-names = "parent"; + mux-controls = <&ain1_mode_mux_ctrl>; + settle-time-us = <1000>; + }; + + /* AIN2 Voltage w/o AIN2_MODE gpio control */ + ain2_voltage_unmanaged: voltage-divider-ain2 { + compatible = "voltage-divider"; + #io-channel-cells = <1>; + io-channels = <&ivy_adc2 0>; + full-ohms = <19>; + output-ohms = <1>; + }; + + /* AIN2 Current w/o AIN2_MODE gpio control */ + ain2_current_unmanaged: current-sense-shunt-ain2 { + compatible = "current-sense-shunt"; + #io-channel-cells = <0>; + io-channels = <&ivy_adc2 1>; + shunt-resistor-micro-ohms = <100000000>; + }; + + /* AIN2_MODE - SODIMM 218 */ + ain2_mode_mux_ctrl: mux-controller-1 { + compatible = "gpio-mux"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio6>; + #mux-control-cells = <0>; + mux-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; + }; + + ain2-voltage { + compatible = "io-channel-mux"; + channels = "ain2_voltage", ""; + io-channels = <&ain2_voltage_unmanaged 0>; + io-channel-names = "parent"; + mux-controls = <&ain2_mode_mux_ctrl>; + settle-time-us = <1000>; + }; + + ain2-current { + compatible = "io-channel-mux"; + channels = "", "ain2_current"; + io-channels = <&ain2_current_unmanaged>; + io-channel-names = "parent"; + mux-controls = <&ain2_mode_mux_ctrl>; + settle-time-us = <1000>; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ivy_leds>; + + /* D7 Blue - SODIMM 30 - LEDs.GPIO1 */ + led-0 { + color = <LED_COLOR_ID_BLUE>; + default-state = "off"; + function = LED_FUNCTION_STATUS; + function-enumerator = <1>; + gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; + }; + + /* D7 Green - SODIMM 32 - LEDs.GPIO2 */ + led-1 { + color = <LED_COLOR_ID_GREEN>; + default-state = "off"; + function = LED_FUNCTION_STATUS; + function-enumerator = <1>; + gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; + }; + + /* D7 Red - SODIMM 34 - LEDs.GPIO3 */ + led-2 { + color = <LED_COLOR_ID_RED>; + default-state = "off"; + function = LED_FUNCTION_STATUS; + function-enumerator = <1>; + gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; + }; + + /* D8 Blue - SODIMM 36 - LEDs.GPIO4 */ + led-3 { + color = <LED_COLOR_ID_BLUE>; + default-state = "off"; + function = LED_FUNCTION_STATUS; + function-enumerator = <2>; + gpios = <&gpio4 2 GPIO_ACTIVE_HIGH>; + }; + + /* D8 Green - SODIMM 54 - LEDs.GPIO5 */ + led-4 { + color = <LED_COLOR_ID_GREEN>; + default-state = "off"; + function = LED_FUNCTION_STATUS; + function-enumerator = <2>; + gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; + }; + + /* D8 Red - SODIMM 44 - LEDs.GPIO6 */ + led-5 { + color = <LED_COLOR_ID_RED>; + default-state = "off"; + function = LED_FUNCTION_STATUS; + function-enumerator = <2>; + gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>; + }; + + /* D9 Blue - SODIMM 46 - LEDs.GPIO7 */ + led-6 { + color = <LED_COLOR_ID_BLUE>; + default-state = "off"; + function = LED_FUNCTION_STATUS; + function-enumerator = <3>; + gpios = <&gpio5 01 GPIO_ACTIVE_HIGH>; + }; + + /* D9 Red - SODIMM 48 - LEDs.GPIO8 */ + led-7 { + color = <LED_COLOR_ID_RED>; + default-state = "off"; + function = LED_FUNCTION_STATUS; + function-enumerator = <3>; + gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>; + }; + }; + + reg_3v2_ain1: regulator-3v2-ain1 { + compatible = "regulator-fixed"; + regulator-max-microvolt = <3200000>; + regulator-min-microvolt = <3200000>; + regulator-name = "+3V2_AIN1"; + }; + + reg_3v2_ain2: regulator-3v2-ain2 { + compatible = "regulator-fixed"; + regulator-max-microvolt = <3200000>; + regulator-min-microvolt = <3200000>; + regulator-name = "+3V2_AIN2"; + }; + + /* Ivy Power Supply Input Voltage */ + ivy-input-voltage { + compatible = "voltage-divider"; + /* Verdin ADC_1 */ + io-channels = <&verdin_som_adc 7>; + full-ohms = <204700>; /* 200k + 4.7k */ + output-ohms = <4700>; + }; + + ivy-5v-voltage { + compatible = "voltage-divider"; + /* Verdin ADC_2 */ + io-channels = <&verdin_som_adc 6>; + full-ohms = <39000>; /* 27k + 12k */ + output-ohms = <12000>; + }; + + ivy-3v3-voltage { + compatible = "voltage-divider"; + /* Verdin ADC_3 */ + io-channels = <&verdin_som_adc 5>; + full-ohms = <54000>; /* 27k + 27k */ + output-ohms = <27000>; + }; + + ivy-1v8-voltage { + compatible = "voltage-divider"; + /* Verdin ADC_4 */ + io-channels = <&verdin_som_adc 4>; + full-ohms = <39000>; /* 12k + 27k */ + output-ohms = <27000>; + }; +}; + +/* Verdin SPI_1 */ +&ecspi1 { + pinctrl-0 = <&pinctrl_ecspi1>, + <&pinctrl_gpio1>, + <&pinctrl_gpio4>; + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>, + <&gpio1 0 GPIO_ACTIVE_LOW>, + <&gpio1 6 GPIO_ACTIVE_LOW>; + status = "okay"; + + tpm@1 { + compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; + reg = <1>; + spi-max-frequency = <18500000>; + }; + + fram@2 { + compatible = "fujitsu,mb85rs256", "atmel,at25"; + reg = <2>; + address-width = <16>; + size = <32768>; + spi-max-frequency = <33000000>; + pagesize = <1>; + }; +}; + +/* EEPROM on Ivy */ +&eeprom_carrier_board { + status = "okay"; +}; + +/* Verdin ETH_1 */ +&eqos { + status = "okay"; +}; + +/* Verdin ETH_2 */ +&fec { + phy-handle = <ðphy2>; + phy-mode = "rgmii-id"; + status = "okay"; +}; + +&verdin_eth2_mdio { + ethphy2: ethernet-phy@2 { + reg = <2>; + interrupt-parent = <&gpio4>; + interrupts = <18 IRQ_TYPE_LEVEL_LOW>; + ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; + ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; + }; +}; + +/* Verdin CAN_1 */ +&flexcan1 { + status = "okay"; +}; + +/* Verdin CAN_2 */ +&flexcan2 { + status = "okay"; +}; + +&gpio1 { + gpio-line-names = + "", /* 0 */ + "GPIO2", /* Verdin GPIO_2 - SODIMM 208 */ + "", + "", + "", + "GPIO3", /* Verdin GPIO_3 - SODIMM 210 */ + "", + "", + "", + "", + "", + "", /* 10 */ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", /* 20 */ + "", + "", + "", + "", + "", + "", + "", + "", + ""; +}; + +&gpio3 { + gpio-line-names = + "", /* 0 */ + "", + "", + "", + "", + "", + "DIG_1", /* SODIMM 56 */ + "DIG_2", /* SODIMM 58 */ + "REL1", /* SODIMM 60 */ + "REL2", /* SODIMM 62 */ + "", /* 10 */ + "", + "", + "", + "REL4", /* SODIMM 66 */ + "", + "REL3", /* SODIMM 64 */ + "", + "", + "", + "", /* 20 */ + "", + "", + "", + "", + "", + "", + "", + "", + ""; +}; + +/* Temperature sensor on Ivy */ +&hwmon_temp { + compatible = "ti,tmp1075"; + status = "okay"; +}; + +/* Verdin I2C_4 CSI */ +&i2c3 { + status = "okay"; + + ivy_adc1: adc@40 { + compatible = "ti,ads1119"; + reg = <0x40>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio7>; + interrupt-parent = <&gpio4>; + interrupts = <3 IRQ_TYPE_EDGE_FALLING>; + avdd-supply = <®_3v2_ain1>; + dvdd-supply = <®_3v2_ain1>; + vref-supply = <®_3v2_ain1>; + #address-cells = <1>; + #io-channel-cells = <1>; + #size-cells = <0>; + + /* AIN1 0-33V Voltage Input */ + channel@0 { + reg = <0>; + diff-channels = <0 1>; + }; + + /* AIN1 0-20mA Current Input */ + channel@1 { + reg = <1>; + diff-channels = <2 3>; + }; + }; + + ivy_adc2: adc@41 { + compatible = "ti,ads1119"; + reg = <0x41>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio8>; + interrupt-parent = <&gpio4>; + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; + avdd-supply = <®_3v2_ain2>; + dvdd-supply = <®_3v2_ain2>; + vref-supply = <®_3v2_ain2>; + #address-cells = <1>; + #io-channel-cells = <1>; + #size-cells = <0>; + + /* AIN2 0-33V Voltage Input */ + channel@0 { + reg = <0>; + diff-channels = <0 1>; + }; + + /* AIN2 0-20mA Current Input */ + channel@1 { + reg = <1>; + diff-channels = <2 3>; + }; + }; +}; + +/* Verdin I2C_1 */ +&i2c4 { + status = "okay"; +}; + +/* Verdin PCIE_1 */ +&pcie { + status = "okay"; +}; + +&pcie_phy { + status = "okay"; +}; + +/* Verdin UART_1 */ +&uart1 { + status = "okay"; +}; + +/* Verdin UART_2 */ +&uart2 { + linux,rs485-enabled-at-boot-time; + rs485-rx-during-tx; + status = "okay"; +}; + +/* Verdin UART_3 */ +&uart3 { + status = "okay"; +}; + +/* Verdin USB_1 */ +&usb3_0 { + status = "okay"; +}; + +&usb3_phy0 { + status = "okay"; +}; + +/* Verdin USB_2 */ +&usb3_1 { + status = "okay"; +}; + +&usb3_phy1 { + status = "okay"; +}; + +/* Verdin SD_1 */ +&usdhc2 { + status = "okay"; +}; + +&iomuxc { + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio2>, <&pinctrl_gpio3>, + <&pinctrl_ivy_dig_inputs>, <&pinctrl_ivy_relays>; + + pinctrl_ivy_dig_inputs: ivydiginputsgrp { + fsl,pins = + <MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x96>, /* SODIMM 56 */ + <MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07 0x96>; /* SODIMM 58 */ + }; + + pinctrl_ivy_leds: ivyledsgrp { + fsl,pins = + <MX8MP_IOMUXC_SAI5_MCLK__GPIO3_IO25 0x16>, /* SODIMM 30 */ + <MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22 0x16>, /* SODIMM 32 */ + <MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x16>, /* SODIMM 34 */ + <MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x16>, /* SODIMM 36 */ + <MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x16>, /* SODIMM 44 */ + <MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x16>, /* SODIMM 46 */ + <MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30 0x16>, /* SODIMM 48 */ + <MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01 0x16>; /* SODIMM 54 */ + }; + + pinctrl_ivy_relays: ivyrelaysgrp { + fsl,pins = + <MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08 0x16>, /* SODIMM 60 */ + <MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09 0x16>, /* SODIMM 62 */ + <MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16 0x16>, /* SODIMM 64 */ + <MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x16>; /* SODIMM 66 */ + }; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts b/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts new file mode 100644 index 000000000000..cb49690050ff --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2024 Toradex + */ + +/dts-v1/; + +#include "imx8mp-verdin.dtsi" +#include "imx8mp-verdin-nonwifi.dtsi" +#include "imx8mp-verdin-ivy.dtsi" + +/ { + model = "Toradex Verdin iMX8M Plus on Ivy"; + compatible = "toradex,verdin-imx8mp-nonwifi-ivy", + "toradex,verdin-imx8mp-nonwifi", + "toradex,verdin-imx8mp", + "fsl,imx8mp"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts b/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts new file mode 100644 index 000000000000..22b8fe70b36d --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2024 Toradex + */ + +/dts-v1/; + +#include "imx8mp-verdin.dtsi" +#include "imx8mp-verdin-wifi.dtsi" +#include "imx8mp-verdin-ivy.dtsi" + +/ { + model = "Toradex Verdin iMX8M Plus WB on Ivy"; + compatible = "toradex,verdin-imx8mp-wifi-ivy", + "toradex,verdin-imx8mp-wifi", + "toradex,verdin-imx8mp", + "fsl,imx8mp"; +}; -- 2.39.5 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v1 3/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board 2024-09-24 11:40 ` [PATCH v1 3/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board Francesco Dolcini @ 2024-09-24 15:09 ` Frank Li 2024-09-24 16:50 ` João Paulo Gonçalves 0 siblings, 1 reply; 13+ messages in thread From: Frank Li @ 2024-09-24 15:09 UTC (permalink / raw) To: Francesco Dolcini Cc: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Rob Herring, Krzysztof Kozlowski, Conor Dooley, João Paulo Gonçalves, imx, linux-arm-kernel, devicetree, linux-kernel, Francesco Dolcini On Tue, Sep 24, 2024 at 01:40:53PM +0200, Francesco Dolcini wrote: > From: João Paulo Gonçalves <joao.goncalves@toradex.com> > > Add Toradex Verdin Ivy carrier board support. One notable feature of Ivy > is the analog inputs. These inputs are multiplexed, allowing the same > input to measure either voltage or current. For current measurements, > a GPIO switch enables or disables the shunt resistor. This process is > automatically managed by the Linux kernel using the IIO and MUX > subsystems. Voltage measurement is always enabled, but the voltage > measured by the ADC is scaled by a cascade voltage divider. In the > device tree, the equivalent gain of the voltage divider is used, which > can be calculated as follows: > > ------------ > + | > .-. > R1=30K | | > | | > '-' > |------------------- > Analog Input (AIN) | | > .-. .-. > R2=10K | | R3=30K | | > | | | | > '-' '-' > | | > | |-------- > | .-. + > | R4=10K | | > | | | ADC Input (Channels 0 and 1) > | '-' > - | | - > -----------| |-------- > === === > GND GND > > Vin = Analog Input (AIN) > Vout = ADC Input > Rth = Thevenin Equiv. Resistance > Vth = Thevenin Equiv. Voltage > RL = Load Resistor > > R1 = 30K, R2 = 10K, R3 = 30K, R4 = 10K > RL = R4 = 10K > > Rth = (R1 // R2) + R3 = 37500 Ohms > Vth = (Vin * R2) / (R1 + R2) = Vin/4; > Vout = (Vth * RL)/ (Rth + RL) = Vth/4.75 = Vin/19 > Gain = Vout/Vin = 1/19 which properties related these value? Frank > > https://www.toradex.com/products/carrier-board/ivy-carrier-board > > Signed-off-by: João Paulo Gonçalves <joao.goncalves@toradex.com> > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> > --- > arch/arm64/boot/dts/freescale/Makefile | 2 + > .../boot/dts/freescale/imx8mp-verdin-ivy.dtsi | 512 ++++++++++++++++++ > .../freescale/imx8mp-verdin-nonwifi-ivy.dts | 18 + > .../dts/freescale/imx8mp-verdin-wifi-ivy.dts | 18 + > 4 files changed, 550 insertions(+) > create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi > create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts > create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > index 9d3df8b218a2..349ff1af0361 100644 > --- a/arch/arm64/boot/dts/freescale/Makefile > +++ b/arch/arm64/boot/dts/freescale/Makefile > @@ -189,10 +189,12 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw75xx-2x.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev.dtb > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-ivy.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-mallow.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-yavia.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-yavia.dtb > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi > new file mode 100644 > index 000000000000..db1b4ee7728c > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi > @@ -0,0 +1,512 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/* > + * Copyright 2024 Toradex > + * > + * Common dtsi for Verdin IMX8MP SoM on Ivy carrier board > + * > + * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-plus > + * https://www.toradex.com/products/carrier-board/ivy-carrier-board > + */ > + > +#include <dt-bindings/mux/mux.h> > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/net/ti-dp83867.h> > + > +/ { > + /* AIN1 Voltage w/o AIN1_MODE gpio control */ > + ain1_voltage_unmanaged: voltage-divider-ain1 { > + compatible = "voltage-divider"; > + #io-channel-cells = <1>; > + io-channels = <&ivy_adc1 0>; > + full-ohms = <19>; > + output-ohms = <1>; > + }; > + > + /* AIN1 Current w/o AIN1_MODE gpio control */ > + ain1_current_unmanaged: current-sense-shunt-ain1 { > + compatible = "current-sense-shunt"; > + #io-channel-cells = <0>; > + io-channels = <&ivy_adc1 1>; > + shunt-resistor-micro-ohms = <100000000>; > + }; Suggest you use https://github.com/lznuaa/dt-format to sort nodes. Any problem, let me know. Frank > + > + /* AIN1_MODE - SODIMM 216 */ > + ain1_mode_mux_ctrl: mux-controller-0 { > + compatible = "gpio-mux"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio5>; > + #mux-control-cells = <0>; > + mux-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; > + }; > + > + ain1-voltage { > + compatible = "io-channel-mux"; > + channels = "ain1_voltage", ""; > + io-channels = <&ain1_voltage_unmanaged 0>; > + io-channel-names = "parent"; > + mux-controls = <&ain1_mode_mux_ctrl>; > + settle-time-us = <1000>; > + }; > + > + ain1-current { > + compatible = "io-channel-mux"; > + channels = "", "ain1_current"; > + io-channels = <&ain1_current_unmanaged>; > + io-channel-names = "parent"; > + mux-controls = <&ain1_mode_mux_ctrl>; > + settle-time-us = <1000>; > + }; > + > + /* AIN2 Voltage w/o AIN2_MODE gpio control */ > + ain2_voltage_unmanaged: voltage-divider-ain2 { > + compatible = "voltage-divider"; > + #io-channel-cells = <1>; > + io-channels = <&ivy_adc2 0>; > + full-ohms = <19>; > + output-ohms = <1>; > + }; > + > + /* AIN2 Current w/o AIN2_MODE gpio control */ > + ain2_current_unmanaged: current-sense-shunt-ain2 { > + compatible = "current-sense-shunt"; > + #io-channel-cells = <0>; > + io-channels = <&ivy_adc2 1>; > + shunt-resistor-micro-ohms = <100000000>; > + }; > + > + /* AIN2_MODE - SODIMM 218 */ > + ain2_mode_mux_ctrl: mux-controller-1 { > + compatible = "gpio-mux"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio6>; > + #mux-control-cells = <0>; > + mux-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; > + }; > + > + ain2-voltage { > + compatible = "io-channel-mux"; > + channels = "ain2_voltage", ""; > + io-channels = <&ain2_voltage_unmanaged 0>; > + io-channel-names = "parent"; > + mux-controls = <&ain2_mode_mux_ctrl>; > + settle-time-us = <1000>; > + }; > + > + ain2-current { > + compatible = "io-channel-mux"; > + channels = "", "ain2_current"; > + io-channels = <&ain2_current_unmanaged>; > + io-channel-names = "parent"; > + mux-controls = <&ain2_mode_mux_ctrl>; > + settle-time-us = <1000>; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ivy_leds>; > + > + /* D7 Blue - SODIMM 30 - LEDs.GPIO1 */ > + led-0 { > + color = <LED_COLOR_ID_BLUE>; > + default-state = "off"; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <1>; > + gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; > + }; > + > + /* D7 Green - SODIMM 32 - LEDs.GPIO2 */ > + led-1 { > + color = <LED_COLOR_ID_GREEN>; > + default-state = "off"; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <1>; > + gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; > + }; > + > + /* D7 Red - SODIMM 34 - LEDs.GPIO3 */ > + led-2 { > + color = <LED_COLOR_ID_RED>; > + default-state = "off"; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <1>; > + gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; > + }; > + > + /* D8 Blue - SODIMM 36 - LEDs.GPIO4 */ > + led-3 { > + color = <LED_COLOR_ID_BLUE>; > + default-state = "off"; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <2>; > + gpios = <&gpio4 2 GPIO_ACTIVE_HIGH>; > + }; > + > + /* D8 Green - SODIMM 54 - LEDs.GPIO5 */ > + led-4 { > + color = <LED_COLOR_ID_GREEN>; > + default-state = "off"; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <2>; > + gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; > + }; > + > + /* D8 Red - SODIMM 44 - LEDs.GPIO6 */ > + led-5 { > + color = <LED_COLOR_ID_RED>; > + default-state = "off"; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <2>; > + gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>; > + }; > + > + /* D9 Blue - SODIMM 46 - LEDs.GPIO7 */ > + led-6 { > + color = <LED_COLOR_ID_BLUE>; > + default-state = "off"; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <3>; > + gpios = <&gpio5 01 GPIO_ACTIVE_HIGH>; > + }; > + > + /* D9 Red - SODIMM 48 - LEDs.GPIO8 */ > + led-7 { > + color = <LED_COLOR_ID_RED>; > + default-state = "off"; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <3>; > + gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>; > + }; > + }; > + > + reg_3v2_ain1: regulator-3v2-ain1 { > + compatible = "regulator-fixed"; > + regulator-max-microvolt = <3200000>; > + regulator-min-microvolt = <3200000>; > + regulator-name = "+3V2_AIN1"; > + }; > + > + reg_3v2_ain2: regulator-3v2-ain2 { > + compatible = "regulator-fixed"; > + regulator-max-microvolt = <3200000>; > + regulator-min-microvolt = <3200000>; > + regulator-name = "+3V2_AIN2"; > + }; > + > + /* Ivy Power Supply Input Voltage */ > + ivy-input-voltage { > + compatible = "voltage-divider"; > + /* Verdin ADC_1 */ > + io-channels = <&verdin_som_adc 7>; > + full-ohms = <204700>; /* 200k + 4.7k */ > + output-ohms = <4700>; > + }; > + > + ivy-5v-voltage { > + compatible = "voltage-divider"; > + /* Verdin ADC_2 */ > + io-channels = <&verdin_som_adc 6>; > + full-ohms = <39000>; /* 27k + 12k */ > + output-ohms = <12000>; > + }; > + > + ivy-3v3-voltage { > + compatible = "voltage-divider"; > + /* Verdin ADC_3 */ > + io-channels = <&verdin_som_adc 5>; > + full-ohms = <54000>; /* 27k + 27k */ > + output-ohms = <27000>; > + }; > + > + ivy-1v8-voltage { > + compatible = "voltage-divider"; > + /* Verdin ADC_4 */ > + io-channels = <&verdin_som_adc 4>; > + full-ohms = <39000>; /* 12k + 27k */ > + output-ohms = <27000>; > + }; > +}; > + > +/* Verdin SPI_1 */ > +&ecspi1 { > + pinctrl-0 = <&pinctrl_ecspi1>, > + <&pinctrl_gpio1>, > + <&pinctrl_gpio4>; > + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>, > + <&gpio1 0 GPIO_ACTIVE_LOW>, > + <&gpio1 6 GPIO_ACTIVE_LOW>; > + status = "okay"; > + > + tpm@1 { > + compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; > + reg = <1>; > + spi-max-frequency = <18500000>; > + }; > + > + fram@2 { > + compatible = "fujitsu,mb85rs256", "atmel,at25"; > + reg = <2>; > + address-width = <16>; > + size = <32768>; > + spi-max-frequency = <33000000>; > + pagesize = <1>; > + }; > +}; > + > +/* EEPROM on Ivy */ > +&eeprom_carrier_board { > + status = "okay"; > +}; > + > +/* Verdin ETH_1 */ > +&eqos { > + status = "okay"; > +}; > + > +/* Verdin ETH_2 */ > +&fec { > + phy-handle = <ðphy2>; > + phy-mode = "rgmii-id"; > + status = "okay"; > +}; > + > +&verdin_eth2_mdio { > + ethphy2: ethernet-phy@2 { > + reg = <2>; > + interrupt-parent = <&gpio4>; > + interrupts = <18 IRQ_TYPE_LEVEL_LOW>; > + ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; > + ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; > + }; > +}; > + > +/* Verdin CAN_1 */ > +&flexcan1 { > + status = "okay"; > +}; > + > +/* Verdin CAN_2 */ > +&flexcan2 { > + status = "okay"; > +}; > + > +&gpio1 { > + gpio-line-names = > + "", /* 0 */ > + "GPIO2", /* Verdin GPIO_2 - SODIMM 208 */ > + "", > + "", > + "", > + "GPIO3", /* Verdin GPIO_3 - SODIMM 210 */ > + "", > + "", > + "", > + "", > + "", > + "", /* 10 */ > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", /* 20 */ > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + ""; > +}; > + > +&gpio3 { > + gpio-line-names = > + "", /* 0 */ > + "", > + "", > + "", > + "", > + "", > + "DIG_1", /* SODIMM 56 */ > + "DIG_2", /* SODIMM 58 */ > + "REL1", /* SODIMM 60 */ > + "REL2", /* SODIMM 62 */ > + "", /* 10 */ > + "", > + "", > + "", > + "REL4", /* SODIMM 66 */ > + "", > + "REL3", /* SODIMM 64 */ > + "", > + "", > + "", > + "", /* 20 */ > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + "", > + ""; > +}; > + > +/* Temperature sensor on Ivy */ > +&hwmon_temp { > + compatible = "ti,tmp1075"; > + status = "okay"; > +}; > + > +/* Verdin I2C_4 CSI */ > +&i2c3 { > + status = "okay"; > + > + ivy_adc1: adc@40 { > + compatible = "ti,ads1119"; > + reg = <0x40>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio7>; > + interrupt-parent = <&gpio4>; > + interrupts = <3 IRQ_TYPE_EDGE_FALLING>; > + avdd-supply = <®_3v2_ain1>; > + dvdd-supply = <®_3v2_ain1>; > + vref-supply = <®_3v2_ain1>; > + #address-cells = <1>; > + #io-channel-cells = <1>; > + #size-cells = <0>; > + > + /* AIN1 0-33V Voltage Input */ > + channel@0 { > + reg = <0>; > + diff-channels = <0 1>; > + }; > + > + /* AIN1 0-20mA Current Input */ > + channel@1 { > + reg = <1>; > + diff-channels = <2 3>; > + }; > + }; > + > + ivy_adc2: adc@41 { > + compatible = "ti,ads1119"; > + reg = <0x41>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio8>; > + interrupt-parent = <&gpio4>; > + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; > + avdd-supply = <®_3v2_ain2>; > + dvdd-supply = <®_3v2_ain2>; > + vref-supply = <®_3v2_ain2>; > + #address-cells = <1>; > + #io-channel-cells = <1>; > + #size-cells = <0>; > + > + /* AIN2 0-33V Voltage Input */ > + channel@0 { > + reg = <0>; > + diff-channels = <0 1>; > + }; > + > + /* AIN2 0-20mA Current Input */ > + channel@1 { > + reg = <1>; > + diff-channels = <2 3>; > + }; > + }; > +}; > + > +/* Verdin I2C_1 */ > +&i2c4 { > + status = "okay"; > +}; > + > +/* Verdin PCIE_1 */ > +&pcie { > + status = "okay"; > +}; > + > +&pcie_phy { > + status = "okay"; > +}; > + > +/* Verdin UART_1 */ > +&uart1 { > + status = "okay"; > +}; > + > +/* Verdin UART_2 */ > +&uart2 { > + linux,rs485-enabled-at-boot-time; > + rs485-rx-during-tx; > + status = "okay"; > +}; > + > +/* Verdin UART_3 */ > +&uart3 { > + status = "okay"; > +}; > + > +/* Verdin USB_1 */ > +&usb3_0 { > + status = "okay"; > +}; > + > +&usb3_phy0 { > + status = "okay"; > +}; > + > +/* Verdin USB_2 */ > +&usb3_1 { > + status = "okay"; > +}; > + > +&usb3_phy1 { > + status = "okay"; > +}; > + > +/* Verdin SD_1 */ > +&usdhc2 { > + status = "okay"; > +}; > + > +&iomuxc { > + > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio2>, <&pinctrl_gpio3>, > + <&pinctrl_ivy_dig_inputs>, <&pinctrl_ivy_relays>; > + > + pinctrl_ivy_dig_inputs: ivydiginputsgrp { > + fsl,pins = > + <MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x96>, /* SODIMM 56 */ > + <MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07 0x96>; /* SODIMM 58 */ > + }; > + > + pinctrl_ivy_leds: ivyledsgrp { > + fsl,pins = > + <MX8MP_IOMUXC_SAI5_MCLK__GPIO3_IO25 0x16>, /* SODIMM 30 */ > + <MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22 0x16>, /* SODIMM 32 */ > + <MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x16>, /* SODIMM 34 */ > + <MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x16>, /* SODIMM 36 */ > + <MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x16>, /* SODIMM 44 */ > + <MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x16>, /* SODIMM 46 */ > + <MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30 0x16>, /* SODIMM 48 */ > + <MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01 0x16>; /* SODIMM 54 */ > + }; > + > + pinctrl_ivy_relays: ivyrelaysgrp { > + fsl,pins = > + <MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08 0x16>, /* SODIMM 60 */ > + <MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09 0x16>, /* SODIMM 62 */ > + <MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16 0x16>, /* SODIMM 64 */ > + <MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x16>; /* SODIMM 66 */ > + }; > +}; > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts b/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts > new file mode 100644 > index 000000000000..cb49690050ff > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts > @@ -0,0 +1,18 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/* > + * Copyright 2024 Toradex > + */ > + > +/dts-v1/; > + > +#include "imx8mp-verdin.dtsi" > +#include "imx8mp-verdin-nonwifi.dtsi" > +#include "imx8mp-verdin-ivy.dtsi" > + > +/ { > + model = "Toradex Verdin iMX8M Plus on Ivy"; > + compatible = "toradex,verdin-imx8mp-nonwifi-ivy", > + "toradex,verdin-imx8mp-nonwifi", > + "toradex,verdin-imx8mp", > + "fsl,imx8mp"; > +}; > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts b/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts > new file mode 100644 > index 000000000000..22b8fe70b36d > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts > @@ -0,0 +1,18 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/* > + * Copyright 2024 Toradex > + */ > + > +/dts-v1/; > + > +#include "imx8mp-verdin.dtsi" > +#include "imx8mp-verdin-wifi.dtsi" > +#include "imx8mp-verdin-ivy.dtsi" > + > +/ { > + model = "Toradex Verdin iMX8M Plus WB on Ivy"; > + compatible = "toradex,verdin-imx8mp-wifi-ivy", > + "toradex,verdin-imx8mp-wifi", > + "toradex,verdin-imx8mp", > + "fsl,imx8mp"; > +}; > -- > 2.39.5 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 3/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board 2024-09-24 15:09 ` Frank Li @ 2024-09-24 16:50 ` João Paulo Gonçalves 2024-09-24 16:56 ` Frank Li 0 siblings, 1 reply; 13+ messages in thread From: João Paulo Gonçalves @ 2024-09-24 16:50 UTC (permalink / raw) To: Frank Li Cc: Francesco Dolcini, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Rob Herring, Krzysztof Kozlowski, Conor Dooley, João Paulo Gonçalves, imx, linux-arm-kernel, devicetree, linux-kernel, Francesco Dolcini Hi Frank, On Tue, Sep 24, 2024 at 11:09:51AM -0400, Frank Li wrote: > On Tue, Sep 24, 2024 at 01:40:53PM +0200, Francesco Dolcini wrote: > > From: João Paulo Gonçalves <joao.goncalves@toradex.com> > > > > Add Toradex Verdin Ivy carrier board support. One notable feature of Ivy > > is the analog inputs. These inputs are multiplexed, allowing the same > > input to measure either voltage or current. For current measurements, > > a GPIO switch enables or disables the shunt resistor. This process is > > automatically managed by the Linux kernel using the IIO and MUX > > subsystems. Voltage measurement is always enabled, but the voltage > > measured by the ADC is scaled by a cascade voltage divider. In the > > device tree, the equivalent gain of the voltage divider is used, which > > can be calculated as follows: > > > > ------------ > > + | > > .-. > > R1=30K | | > > | | > > '-' > > |------------------- > > Analog Input (AIN) | | > > .-. .-. > > R2=10K | | R3=30K | | > > | | | | > > '-' '-' > > | | > > | |-------- > > | .-. + > > | R4=10K | | > > | | | ADC Input (Channels 0 and 1) > > | '-' > > - | | - > > -----------| |-------- > > === === > > GND GND > > > > Vin = Analog Input (AIN) > > Vout = ADC Input > > Rth = Thevenin Equiv. Resistance > > Vth = Thevenin Equiv. Voltage > > RL = Load Resistor > > > > R1 = 30K, R2 = 10K, R3 = 30K, R4 = 10K > > RL = R4 = 10K > > > > Rth = (R1 // R2) + R3 = 37500 Ohms > > Vth = (Vin * R2) / (R1 + R2) = Vin/4; > > Vout = (Vth * RL)/ (Rth + RL) = Vth/4.75 = Vin/19 > > Gain = Vout/Vin = 1/19 > > which properties related these value? The gain value is used on the "ain1_voltage_unmanaged" node for the full-ohms and output-ohms properties. Best Regards, João Paulo Gonçalves ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 3/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board 2024-09-24 16:50 ` João Paulo Gonçalves @ 2024-09-24 16:56 ` Frank Li 0 siblings, 0 replies; 13+ messages in thread From: Frank Li @ 2024-09-24 16:56 UTC (permalink / raw) To: João Paulo Gonçalves Cc: Francesco Dolcini, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Rob Herring, Krzysztof Kozlowski, Conor Dooley, João Paulo Gonçalves, imx, linux-arm-kernel, devicetree, linux-kernel, Francesco Dolcini On Tue, Sep 24, 2024 at 01:50:21PM -0300, João Paulo Gonçalves wrote: > Hi Frank, > > On Tue, Sep 24, 2024 at 11:09:51AM -0400, Frank Li wrote: > > On Tue, Sep 24, 2024 at 01:40:53PM +0200, Francesco Dolcini wrote: > > > From: João Paulo Gonçalves <joao.goncalves@toradex.com> > > > > > > Add Toradex Verdin Ivy carrier board support. One notable feature of Ivy > > > is the analog inputs. These inputs are multiplexed, allowing the same > > > input to measure either voltage or current. For current measurements, > > > a GPIO switch enables or disables the shunt resistor. This process is > > > automatically managed by the Linux kernel using the IIO and MUX > > > subsystems. Voltage measurement is always enabled, but the voltage > > > measured by the ADC is scaled by a cascade voltage divider. In the > > > device tree, the equivalent gain of the voltage divider is used, which > > > can be calculated as follows: > > > > > > ------------ > > > + | > > > .-. > > > R1=30K | | > > > | | > > > '-' > > > |------------------- > > > Analog Input (AIN) | | > > > .-. .-. > > > R2=10K | | R3=30K | | > > > | | | | > > > '-' '-' > > > | | > > > | |-------- > > > | .-. + > > > | R4=10K | | > > > | | | ADC Input (Channels 0 and 1) > > > | '-' > > > - | | - > > > -----------| |-------- > > > === === > > > GND GND > > > > > > Vin = Analog Input (AIN) > > > Vout = ADC Input > > > Rth = Thevenin Equiv. Resistance > > > Vth = Thevenin Equiv. Voltage > > > RL = Load Resistor > > > > > > R1 = 30K, R2 = 10K, R3 = 30K, R4 = 10K > > > RL = R4 = 10K > > > > > > Rth = (R1 // R2) + R3 = 37500 Ohms > > > Vth = (Vin * R2) / (R1 + R2) = Vin/4; > > > Vout = (Vth * RL)/ (Rth + RL) = Vth/4.75 = Vin/19 > > > Gain = Vout/Vin = 1/19 > > > > which properties related these value? > > The gain value is used on the "ain1_voltage_unmanaged" node for the full-ohms > and output-ohms properties. Okay, why not define a C macros, which calculate value base on input R<n> 's number. Frank > > Best Regards, > João Paulo Gonçalves ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier 2024-09-24 11:40 [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Francesco Dolcini ` (2 preceding siblings ...) 2024-09-24 11:40 ` [PATCH v1 3/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board Francesco Dolcini @ 2024-09-25 1:56 ` Rob Herring (Arm) 2024-10-17 9:29 ` Shawn Guo 4 siblings, 0 replies; 13+ messages in thread From: Rob Herring (Arm) @ 2024-09-25 1:56 UTC (permalink / raw) To: Francesco Dolcini Cc: Fabio Estevam, linux-kernel, linux-arm-kernel, Sascha Hauer, Pengutronix Kernel Team, imx, devicetree, Conor Dooley, Shawn Guo, Krzysztof Kozlowski, Francesco Dolcini On Tue, 24 Sep 2024 13:40:50 +0200, Francesco Dolcini wrote: > From: Francesco Dolcini <francesco.dolcini@toradex.com> > > Add support for the Toradex Verdin iMX8MP Ivy carrier board. Ivy is a carrier > board designed for industrial environments, supporting industrial > I/O interfaces such as CAN, RS485, RS232, Gigabit Ethernet, 0-25mA analog > inputs, relays, PCIe and more. The board also includes a TPM for security > applications. > > https://www.toradex.com/products/carrier-board/ivy-carrier-board > > João Paulo Gonçalves (3): > dt-bindings: arm: freescale: Add verdin imx8mp ivy board > arm64: dts: freescale: imx8mp-verdin: add labels to som nodes > arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board > > .../devicetree/bindings/arm/fsl.yaml | 2 + > arch/arm64/boot/dts/freescale/Makefile | 2 + > .../boot/dts/freescale/imx8mp-verdin-ivy.dtsi | 512 ++++++++++++++++++ > .../freescale/imx8mp-verdin-nonwifi-ivy.dts | 18 + > .../dts/freescale/imx8mp-verdin-wifi-ivy.dts | 18 + > .../boot/dts/freescale/imx8mp-verdin.dtsi | 5 +- > 6 files changed, 555 insertions(+), 2 deletions(-) > create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-ivy.dtsi > create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dts > create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dts > > -- > 2.39.5 > > My bot found new DTB warnings on the .dts files added or changed in this series. Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments. If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date: pip3 install dtschema --upgrade New warnings running 'make CHECK_DTBS=y freescale/imx8mp-verdin-nonwifi-ivy.dtb freescale/imx8mp-verdin-wifi-ivy.dtb' for 20240924114053.127737-1-francesco@dolcini.it: arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dtb: pcie-ep@33800000: reg: [[864026624, 4194304], [402653184, 134217728]] is too short from schema $id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie-ep.yaml# arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-ivy.dtb: pcie-ep@33800000: reg-names: ['dbi', 'addr_space'] is too short from schema $id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie-ep.yaml# arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dtb: pcie-ep@33800000: reg: [[864026624, 4194304], [402653184, 134217728]] is too short from schema $id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie-ep.yaml# arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-ivy.dtb: pcie-ep@33800000: reg-names: ['dbi', 'addr_space'] is too short from schema $id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie-ep.yaml# ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier 2024-09-24 11:40 [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Francesco Dolcini ` (3 preceding siblings ...) 2024-09-25 1:56 ` [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Rob Herring (Arm) @ 2024-10-17 9:29 ` Shawn Guo 4 siblings, 0 replies; 13+ messages in thread From: Shawn Guo @ 2024-10-17 9:29 UTC (permalink / raw) To: Francesco Dolcini Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Francesco Dolcini, devicetree, linux-kernel, imx, linux-arm-kernel On Tue, Sep 24, 2024 at 01:40:50PM +0200, Francesco Dolcini wrote: > From: Francesco Dolcini <francesco.dolcini@toradex.com> > > Add support for the Toradex Verdin iMX8MP Ivy carrier board. Ivy is a carrier > board designed for industrial environments, supporting industrial > I/O interfaces such as CAN, RS485, RS232, Gigabit Ethernet, 0-25mA analog > inputs, relays, PCIe and more. The board also includes a TPM for security > applications. > > https://www.toradex.com/products/carrier-board/ivy-carrier-board > > João Paulo Gonçalves (3): > dt-bindings: arm: freescale: Add verdin imx8mp ivy board > arm64: dts: freescale: imx8mp-verdin: add labels to som nodes > arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board Applied all, thanks! ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-10-17 9:30 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-09-24 11:40 [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Francesco Dolcini 2024-09-24 11:40 ` [PATCH v1 1/3] dt-bindings: arm: freescale: Add verdin imx8mp ivy board Francesco Dolcini 2024-09-24 15:34 ` Conor Dooley 2024-09-24 11:40 ` [PATCH v1 2/3] arm64: dts: freescale: imx8mp-verdin: add labels to som nodes Francesco Dolcini 2024-09-24 15:02 ` Frank Li 2024-09-24 17:02 ` João Paulo Gonçalves 2024-09-25 16:53 ` Frank Li 2024-09-24 11:40 ` [PATCH v1 3/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board Francesco Dolcini 2024-09-24 15:09 ` Frank Li 2024-09-24 16:50 ` João Paulo Gonçalves 2024-09-24 16:56 ` Frank Li 2024-09-25 1:56 ` [PATCH v1 0/3] arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier Rob Herring (Arm) 2024-10-17 9:29 ` Shawn Guo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox