* [PATCH v3 0/4] Support i.MX28 Amarula rmm board
@ 2025-05-29 8:31 Dario Binacchi
2025-05-29 8:31 ` [PATCH v3 1/4] dt-bindings: mfd: convert mxs-lradc bindings to json-schema Dario Binacchi
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Dario Binacchi @ 2025-05-29 8:31 UTC (permalink / raw)
To: linux-kernel
Cc: michael, linux-amarula, Dario Binacchi, Alexander Stein,
Andreas Kemnade, Conor Dooley, Fabio Estevam, Fabio Estevam,
Francesco Dolcini, Frieder Schrempf, Heiko Schocher,
João Paulo Gonçalves, Krzysztof Kozlowski, Lee Jones,
Marek Vasut, Max Merchel, Michael Walle, Peng Fan,
Pengutronix Kernel Team, Rob Herring, Sascha Hauer, Shawn Guo,
Tim Harvey, devicetree, imx, linux-arm-kernel
The series adds support for i.MX28 Amarula rmm board.
The board includes the following resources:
- 256 Mbytes NAND Flash
- 128 Mbytes DRAM DDR2
- CAN
- USB 2.0 high-speed/full-speed
- Ethernet MAC
Changes in v3:
- In imx28-amarula-rmm.dts:
- Drop xceiver-supply property from can0 node.
- Rearrange the order of specific nodes and properties
alphabetically.
Changes in v2:
- In imx28-amarula-rmm.dts:
- Replace '-' with '@' for the pinctrl sub-nodes.
- Replace edt,edt-ft5x06 with edt,edt-ft5306.
- Drop LCD reset hog pin.
- Add correct #address-cells and #size-cells to gpmi node.
- Replace edt-ft5x06@38 with touchscreen@38.
- Drop from commit messages all references to LCD display.
- Add patch [1/4] "dt-bindings: mfd: convert mxs-lradc bindings to
json-schema".
Dario Binacchi (4):
dt-bindings: mfd: convert mxs-lradc bindings to json-schema
ARM: dts: imx28: add pwm7 muxing options
dt-bindings: arm: fsl: add i.MX28 Amarula rmm board
ARM: dts: mxs: support i.MX28 Amarula rmm board
.../devicetree/bindings/arm/fsl.yaml | 1 +
.../devicetree/bindings/mfd/mxs-lradc.txt | 45 ---
.../devicetree/bindings/mfd/mxs-lradc.yaml | 106 ++++++
arch/arm/boot/dts/nxp/mxs/Makefile | 1 +
.../boot/dts/nxp/mxs/imx28-amarula-rmm.dts | 303 ++++++++++++++++++
arch/arm/boot/dts/nxp/mxs/imx28.dtsi | 10 +
6 files changed, 421 insertions(+), 45 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/mfd/mxs-lradc.txt
create mode 100644 Documentation/devicetree/bindings/mfd/mxs-lradc.yaml
create mode 100644 arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
--
2.43.0
base-commit: 2d1e9b3978bc041336f1bf6c611fbbf435a297f5
branch: imx28-amarula-rmm
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/4] dt-bindings: mfd: convert mxs-lradc bindings to json-schema
2025-05-29 8:31 [PATCH v3 0/4] Support i.MX28 Amarula rmm board Dario Binacchi
@ 2025-05-29 8:31 ` Dario Binacchi
2025-05-29 12:51 ` Rob Herring
2025-05-29 8:31 ` [PATCH v3 2/4] ARM: dts: imx28: add pwm7 muxing options Dario Binacchi
2025-05-29 8:31 ` [PATCH v3 4/4] ARM: dts: mxs: support i.MX28 Amarula rmm board Dario Binacchi
2 siblings, 1 reply; 5+ messages in thread
From: Dario Binacchi @ 2025-05-29 8:31 UTC (permalink / raw)
To: linux-kernel
Cc: michael, linux-amarula, Dario Binacchi, Conor Dooley,
Conor Dooley, Fabio Estevam, Krzysztof Kozlowski, Lee Jones,
Pengutronix Kernel Team, Rob Herring, Sascha Hauer, Shawn Guo,
devicetree, imx, linux-arm-kernel
Convert the Freescale MXS Low-Resoulution ADC (LRADC) device tree
binding documentation to json-schema.
The clocks and #io-channel-cells properties have also been added; They
are present in the respective SoC DTSI files but were missing from the
old mxs-lradc.txt file.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
---
Changes in v3:
- Add Reviewed-by tag of Conor Dooley
.../devicetree/bindings/mfd/mxs-lradc.txt | 45 --------
.../devicetree/bindings/mfd/mxs-lradc.yaml | 106 ++++++++++++++++++
2 files changed, 106 insertions(+), 45 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/mfd/mxs-lradc.txt
create mode 100644 Documentation/devicetree/bindings/mfd/mxs-lradc.yaml
diff --git a/Documentation/devicetree/bindings/mfd/mxs-lradc.txt b/Documentation/devicetree/bindings/mfd/mxs-lradc.txt
deleted file mode 100644
index 755cbef0647d..000000000000
--- a/Documentation/devicetree/bindings/mfd/mxs-lradc.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-* Freescale MXS LRADC device driver
-
-Required properties:
-- compatible: Should be "fsl,imx23-lradc" for i.MX23 SoC and "fsl,imx28-lradc"
- for i.MX28 SoC
-- reg: Address and length of the register set for the device
-- interrupts: Should contain the LRADC interrupts
-
-Optional properties:
-- fsl,lradc-touchscreen-wires: Number of wires used to connect the touchscreen
- to LRADC. Valid value is either 4 or 5. If this
- property is not present, then the touchscreen is
- disabled. 5 wires is valid for i.MX28 SoC only.
-- fsl,ave-ctrl: number of samples per direction to calculate an average value.
- Allowed value is 1 ... 32, default is 4
-- fsl,ave-delay: delay between consecutive samples. Allowed value is
- 2 ... 2048. It is used if 'fsl,ave-ctrl' > 1, counts at
- 2 kHz and its default is 2 (= 1 ms)
-- fsl,settling: delay between plate switch to next sample. Allowed value is
- 1 ... 2047. It counts at 2 kHz and its default is
- 10 (= 5 ms)
-
-Example for i.MX23 SoC:
-
- lradc@80050000 {
- compatible = "fsl,imx23-lradc";
- reg = <0x80050000 0x2000>;
- interrupts = <36 37 38 39 40 41 42 43 44>;
- fsl,lradc-touchscreen-wires = <4>;
- fsl,ave-ctrl = <4>;
- fsl,ave-delay = <2>;
- fsl,settling = <10>;
- };
-
-Example for i.MX28 SoC:
-
- lradc@80050000 {
- compatible = "fsl,imx28-lradc";
- reg = <0x80050000 0x2000>;
- interrupts = <10 14 15 16 17 18 19 20 21 22 23 24 25>;
- fsl,lradc-touchscreen-wires = <5>;
- fsl,ave-ctrl = <4>;
- fsl,ave-delay = <2>;
- fsl,settling = <10>;
- };
diff --git a/Documentation/devicetree/bindings/mfd/mxs-lradc.yaml b/Documentation/devicetree/bindings/mfd/mxs-lradc.yaml
new file mode 100644
index 000000000000..90391b02c715
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/mxs-lradc.yaml
@@ -0,0 +1,106 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/mxs-lradc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale MXS Low-Resoulution ADC (LRADC)
+
+maintainers:
+ - Dario Binacchi <dario.binacchi@amarulasolutions.com>
+
+description: |
+ The LRADC provides 16 physical channels of 12-bit resolution
+ for analog-to-digital conversion and includes an integrated
+ 4-wire/5-wire touchscreen controller.
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - fsl,imx23-lradc
+ - fsl,imx28-lradc
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ minItems: 1
+
+ interrupts:
+ minItems: 9
+ maxItems: 13
+
+ fsl,lradc-touchscreen-wires:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Number of wires used to connect the touchscreen to LRADC.
+ If this property is not present, then the touchscreen is disabled.
+
+ fsl,ave-ctrl:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 1
+ maximum: 32
+ default: 4
+ description: |
+ Number of samples per direction to calculate an average value.
+
+ fsl,ave-delay:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 2
+ maximum: 2048
+ default: 2
+ description: |
+ Delay between consecutive samples.
+ It is used if 'fsl,ave-ctrl' > 1, counts at 2 kHz and its
+ default value (i. e. 2) is 1 ms.
+
+ fsl,settling:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 1
+ maximum: 2047
+ default: 10
+ description: |
+ Delay between plate switch to next sample.
+ It counts at 2 kHz and its default (i. e. 10) is 5 ms.
+
+ "#io-channel-cells":
+ const: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - interrupts
+
+if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,imx23-lradc
+then:
+ properties:
+ fsl,lradc-touchscreen-wires:
+ const: 4
+else:
+ properties:
+ fsl,lradc-touchscreen-wires:
+ enum: [4, 5]
+
+additionalProperties: false
+
+examples:
+ - |
+ lradc@80050000 {
+ compatible = "fsl,imx23-lradc";
+ reg = <0x80050000 0x2000>;
+ interrupts = <36>, <37>, <38>, <39>, <40>,
+ <41>, <42>, <43>, <44>;
+ clocks = <&clks 26>;
+ #io-channel-cells = <1>;
+ fsl,lradc-touchscreen-wires = <4>;
+ fsl,ave-ctrl = <4>;
+ fsl,ave-delay = <2>;
+ fsl,settling = <10>;
+ };
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/4] ARM: dts: imx28: add pwm7 muxing options
2025-05-29 8:31 [PATCH v3 0/4] Support i.MX28 Amarula rmm board Dario Binacchi
2025-05-29 8:31 ` [PATCH v3 1/4] dt-bindings: mfd: convert mxs-lradc bindings to json-schema Dario Binacchi
@ 2025-05-29 8:31 ` Dario Binacchi
2025-05-29 8:31 ` [PATCH v3 4/4] ARM: dts: mxs: support i.MX28 Amarula rmm board Dario Binacchi
2 siblings, 0 replies; 5+ messages in thread
From: Dario Binacchi @ 2025-05-29 8:31 UTC (permalink / raw)
To: linux-kernel
Cc: michael, linux-amarula, Dario Binacchi, Conor Dooley,
Fabio Estevam, Krzysztof Kozlowski, Pengutronix Kernel Team,
Rob Herring, Sascha Hauer, Shawn Guo, devicetree, imx,
linux-arm-kernel
Add alternative pinmuxing for pwm7.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes in v3:
- Add commit body
arch/arm/boot/dts/nxp/mxs/imx28.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm/boot/dts/nxp/mxs/imx28.dtsi b/arch/arm/boot/dts/nxp/mxs/imx28.dtsi
index bbea8b77386f..ece46d0e7c7f 100644
--- a/arch/arm/boot/dts/nxp/mxs/imx28.dtsi
+++ b/arch/arm/boot/dts/nxp/mxs/imx28.dtsi
@@ -755,6 +755,16 @@ MX28_PAD_PWM4__PWM_4
fsl,pull-up = <MXS_PULL_DISABLE>;
};
+ pwm7_pins_a: pwm7@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ MX28_PAD_SAIF1_SDATA0__PWM_7
+ >;
+ fsl,drive-strength = <MXS_DRIVE_4mA>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ fsl,pull-up = <MXS_PULL_DISABLE>;
+ };
+
lcdif_24bit_pins_a: lcdif-24bit@0 {
reg = <0>;
fsl,pinmux-ids = <
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 4/4] ARM: dts: mxs: support i.MX28 Amarula rmm board
2025-05-29 8:31 [PATCH v3 0/4] Support i.MX28 Amarula rmm board Dario Binacchi
2025-05-29 8:31 ` [PATCH v3 1/4] dt-bindings: mfd: convert mxs-lradc bindings to json-schema Dario Binacchi
2025-05-29 8:31 ` [PATCH v3 2/4] ARM: dts: imx28: add pwm7 muxing options Dario Binacchi
@ 2025-05-29 8:31 ` Dario Binacchi
2 siblings, 0 replies; 5+ messages in thread
From: Dario Binacchi @ 2025-05-29 8:31 UTC (permalink / raw)
To: linux-kernel
Cc: michael, linux-amarula, Dario Binacchi, Conor Dooley,
Fabio Estevam, Krzysztof Kozlowski, Pengutronix Kernel Team,
Rob Herring, Sascha Hauer, Shawn Guo, devicetree, imx,
linux-arm-kernel
The board includes the following resources:
- 256 Mbytes NAND Flash
- 128 Mbytes DRAM DDR2
- CAN
- USB 2.0 high-speed/full-speed
- Ethernet MAC
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes in v3:
- In imx28-amarula-rmm.dts:
- Drop xceiver-supply property from can0 node.
- Rearrange the order of specific nodes and properties
alphabetically.
Changes in v2:
- In imx28-amarula-rmm.dts:
- Replace '-' with '@' for the pinctrl sub-nodes.
- Replace edt,edt-ft5x06 with edt,edt-ft5306.
- Drop LCD reset hog pin.
- Add correct #address-cells and #size-cells to gpmi node.
- Replace edt-ft5x06@38 with touchscreen@38.
- Drop from commit messages all references to LCD display.
- Add patch [1/4] "dt-bindings: mfd: convert mxs-lradc bindings to
json-schema".
arch/arm/boot/dts/nxp/mxs/Makefile | 1 +
.../boot/dts/nxp/mxs/imx28-amarula-rmm.dts | 303 ++++++++++++++++++
2 files changed, 304 insertions(+)
create mode 100644 arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
diff --git a/arch/arm/boot/dts/nxp/mxs/Makefile b/arch/arm/boot/dts/nxp/mxs/Makefile
index 96dd31ea19ba..d72ba702b6fa 100644
--- a/arch/arm/boot/dts/nxp/mxs/Makefile
+++ b/arch/arm/boot/dts/nxp/mxs/Makefile
@@ -5,6 +5,7 @@ dtb-$(CONFIG_ARCH_MXS) += \
imx23-sansa.dtb \
imx23-stmp378x_devb.dtb \
imx23-xfi3.dtb \
+ imx28-amarula-rmm.dtb \
imx28-apf28.dtb \
imx28-apf28dev.dtb \
imx28-apx4devkit.dtb \
diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
new file mode 100644
index 000000000000..5824eb9e9557
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
@@ -0,0 +1,303 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com>
+ */
+
+/dts-v1/;
+
+#include "imx28.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+ compatible = "amarula,imx28-rmm", "fsl,imx28";
+ model = "Amarula i.MX28 rmm";
+
+ memory@40000000 {
+ reg = <0x40000000 0x08000000>;
+ device_type = "memory";
+ };
+
+ backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm 4 5000000 0>;
+ brightness-levels = <0 255>;
+ num-interpolated-steps = <255>;
+ default-brightness-level = <255>;
+ power-supply = <®_5v>;
+ };
+
+ beeper {
+ compatible = "pwm-beeper";
+ pwms = <&pwm 7 100000 0>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&leds_pins>;
+
+ led-0 {
+ label = "status";
+ gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ led-1 {
+ label = "x22_5";
+ gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+
+ led-2 {
+ label = "x22_4";
+ gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ };
+ };
+
+ reg_1v8: regulator-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ reg_3v3: regulator-3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ reg_5v: regulator-5v {
+ compatible = "regulator-fixed";
+ regulator-name = "5v";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ };
+
+ reg_fec_3v3: regulator-fec-3v3 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&fec_3v3_enable_pin>;
+ regulator-name = "fec-3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ startup-delay-us = <300000>;
+ vin-supply = <®_5v>;
+ };
+
+ reg_usb0_vbus: regulator-usb0-vbus {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&usb0_vbus_enable_pin>;
+ regulator-name = "usb0_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+
+ reg_usb1_vbus: regulator-usb1-vbus {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&usb1_vbus_enable_pin>;
+ regulator-name = "usb1_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+};
+
+&auart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&auart0_2pins_a>;
+ status = "okay";
+};
+
+&auart1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&auart1_pins_a>;
+ status = "okay";
+};
+
+&can0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&can0_pins_a>;
+ status = "okay";
+};
+
+&duart {
+ pinctrl-names = "default";
+ pinctrl-0 = <&duart_pins_b>;
+ status = "okay";
+};
+
+&duart_pins_b {
+ fsl,voltage = <MXS_VOLTAGE_LOW>;
+};
+
+&gpmi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
+ status = "okay";
+};
+
+&i2c0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_pins_a>;
+ status = "okay";
+
+ touchscreen: touchscreen@38 {
+ compatible = "edt,edt-ft5306";
+ reg = <0x38>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&edt_ft5x06_pins &edt_ft5x06_wake_pin>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <19 IRQ_TYPE_EDGE_RISING>;
+ reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&lradc {
+ status = "okay";
+};
+
+&mac0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mac0_pins_a>;
+ phy-mode = "rmii";
+ phy-supply = <®_fec_3v3>;
+ phy-handle = <ðphy>;
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ethphy: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ max-speed = <100>;
+ reset-gpios = <&gpio3 28 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <4000>;
+ reset-deassert-us = <4000>;
+ };
+ };
+};
+
+&pinctrl {
+ pinctrl-names = "default";
+ pinctrl-0 = <&hog_pins_a>;
+
+ edt_ft5x06_pins: edt-ft5x06@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ MX28_PAD_GPMI_RDY1__GPIO_0_21 /* Reset */
+ MX28_PAD_GPMI_CE3N__GPIO_0_19 /* Interrupt */
+ >;
+ fsl,drive-strength = <MXS_DRIVE_4mA>;
+ fsl,pull-up = <MXS_PULL_ENABLE>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ };
+
+ edt_ft5x06_wake_pin: edt-ft5x06-wake@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <MX28_PAD_GPMI_CE2N__GPIO_0_18>;
+ fsl,drive-strength = <MXS_DRIVE_16mA>;
+ fsl,pull-up = <MXS_PULL_DISABLE>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ };
+
+ fec_3v3_enable_pin: fec-3v3-enable@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <MX28_PAD_SPDIF__GPIO_3_27>;
+ fsl,drive-strength = <MXS_DRIVE_4mA>;
+ fsl,pull-up = <MXS_PULL_DISABLE>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ };
+
+ hog_pins_a: hog@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ MX28_PAD_SSP2_SS1__GPIO_2_20 /* External power */
+ >;
+ fsl,drive-strength = <MXS_DRIVE_4mA>;
+ fsl,pull-up = <MXS_PULL_DISABLE>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ };
+
+ leds_pins: leds@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <
+ MX28_PAD_SSP0_DATA7__GPIO_2_7
+ MX28_PAD_PWM0__GPIO_3_16
+ MX28_PAD_PWM1__GPIO_3_17
+ >;
+ fsl,drive-strength = <MXS_DRIVE_4mA>;
+ fsl,pull-up = <MXS_PULL_DISABLE>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ };
+
+ usb0_vbus_enable_pin: usb0-vbus-enable@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <MX28_PAD_SSP0_DATA5__GPIO_2_5>;
+ fsl,drive-strength = <MXS_DRIVE_4mA>;
+ fsl,pull-up = <MXS_PULL_DISABLE>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ };
+
+ usb1_vbus_enable_pin: usb1-vbus-enable@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <MX28_PAD_SSP0_DATA6__GPIO_2_6>;
+ fsl,drive-strength = <MXS_DRIVE_4mA>;
+ fsl,pull-up = <MXS_PULL_DISABLE>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ };
+};
+
+&pwm {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pwm4_pins_a &pwm7_pins_a>;
+ status = "okay";
+};
+
+&ssp0 {
+ compatible = "fsl,imx28-mmc";
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>;
+ broken-cd;
+ bus-width = <4>;
+ status = "okay";
+};
+
+&usb0 {
+ dr_mode = "host";
+ vbus-supply = <®_usb0_vbus>;
+ status = "okay";
+};
+
+&usb1 {
+ dr_mode = "host";
+ vbus-supply = <®_usb1_vbus>;
+ status = "okay";
+};
+
+&usbphy0 {
+ status = "okay";
+};
+
+&usbphy1 {
+ status = "okay";
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/4] dt-bindings: mfd: convert mxs-lradc bindings to json-schema
2025-05-29 8:31 ` [PATCH v3 1/4] dt-bindings: mfd: convert mxs-lradc bindings to json-schema Dario Binacchi
@ 2025-05-29 12:51 ` Rob Herring
0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2025-05-29 12:51 UTC (permalink / raw)
To: Dario Binacchi
Cc: linux-kernel, michael, linux-amarula, Conor Dooley, Conor Dooley,
Fabio Estevam, Krzysztof Kozlowski, Lee Jones,
Pengutronix Kernel Team, Sascha Hauer, Shawn Guo, devicetree, imx,
linux-arm-kernel
On Thu, May 29, 2025 at 10:31:04AM +0200, Dario Binacchi wrote:
> Convert the Freescale MXS Low-Resoulution ADC (LRADC) device tree
> binding documentation to json-schema.
>
> The clocks and #io-channel-cells properties have also been added; They
> are present in the respective SoC DTSI files but were missing from the
> old mxs-lradc.txt file.
>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
>
> ---
>
> Changes in v3:
> - Add Reviewed-by tag of Conor Dooley
>
> .../devicetree/bindings/mfd/mxs-lradc.txt | 45 --------
> .../devicetree/bindings/mfd/mxs-lradc.yaml | 106 ++++++++++++++++++
> 2 files changed, 106 insertions(+), 45 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/mfd/mxs-lradc.txt
> create mode 100644 Documentation/devicetree/bindings/mfd/mxs-lradc.yaml
>
> diff --git a/Documentation/devicetree/bindings/mfd/mxs-lradc.txt b/Documentation/devicetree/bindings/mfd/mxs-lradc.txt
> deleted file mode 100644
> index 755cbef0647d..000000000000
> --- a/Documentation/devicetree/bindings/mfd/mxs-lradc.txt
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -* Freescale MXS LRADC device driver
> -
> -Required properties:
> -- compatible: Should be "fsl,imx23-lradc" for i.MX23 SoC and "fsl,imx28-lradc"
> - for i.MX28 SoC
> -- reg: Address and length of the register set for the device
> -- interrupts: Should contain the LRADC interrupts
> -
> -Optional properties:
> -- fsl,lradc-touchscreen-wires: Number of wires used to connect the touchscreen
> - to LRADC. Valid value is either 4 or 5. If this
> - property is not present, then the touchscreen is
> - disabled. 5 wires is valid for i.MX28 SoC only.
> -- fsl,ave-ctrl: number of samples per direction to calculate an average value.
> - Allowed value is 1 ... 32, default is 4
> -- fsl,ave-delay: delay between consecutive samples. Allowed value is
> - 2 ... 2048. It is used if 'fsl,ave-ctrl' > 1, counts at
> - 2 kHz and its default is 2 (= 1 ms)
> -- fsl,settling: delay between plate switch to next sample. Allowed value is
> - 1 ... 2047. It counts at 2 kHz and its default is
> - 10 (= 5 ms)
> -
> -Example for i.MX23 SoC:
> -
> - lradc@80050000 {
> - compatible = "fsl,imx23-lradc";
> - reg = <0x80050000 0x2000>;
> - interrupts = <36 37 38 39 40 41 42 43 44>;
> - fsl,lradc-touchscreen-wires = <4>;
> - fsl,ave-ctrl = <4>;
> - fsl,ave-delay = <2>;
> - fsl,settling = <10>;
> - };
> -
> -Example for i.MX28 SoC:
> -
> - lradc@80050000 {
> - compatible = "fsl,imx28-lradc";
> - reg = <0x80050000 0x2000>;
> - interrupts = <10 14 15 16 17 18 19 20 21 22 23 24 25>;
> - fsl,lradc-touchscreen-wires = <5>;
> - fsl,ave-ctrl = <4>;
> - fsl,ave-delay = <2>;
> - fsl,settling = <10>;
> - };
> diff --git a/Documentation/devicetree/bindings/mfd/mxs-lradc.yaml b/Documentation/devicetree/bindings/mfd/mxs-lradc.yaml
> new file mode 100644
> index 000000000000..90391b02c715
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/mxs-lradc.yaml
> @@ -0,0 +1,106 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/mxs-lradc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Freescale MXS Low-Resoulution ADC (LRADC)
> +
> +maintainers:
> + - Dario Binacchi <dario.binacchi@amarulasolutions.com>
> +
> +description: |
Don't need '|' unless there is formatting to preserve.
> + The LRADC provides 16 physical channels of 12-bit resolution
> + for analog-to-digital conversion and includes an integrated
> + 4-wire/5-wire touchscreen controller.
Wrap lines at 80 char.
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + - fsl,imx23-lradc
> + - fsl,imx28-lradc
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + minItems: 1
> +
> + interrupts:
> + minItems: 9
> + maxItems: 13
Please describe what each interrupt is. Unless they are all the same
(e.g. 1 interrupt per ADC channel), you need to list them out.
> +
> + fsl,lradc-touchscreen-wires:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Number of wires used to connect the touchscreen to LRADC.
> + If this property is not present, then the touchscreen is disabled.
Don't need '|'. Unless this is supposed to be 2 paragraphs. In that
case, add a blank line between paragraphs. Same comment on the rest.
> +
> + fsl,ave-ctrl:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 1
> + maximum: 32
> + default: 4
> + description: |
> + Number of samples per direction to calculate an average value.
> +
> + fsl,ave-delay:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 2
> + maximum: 2048
> + default: 2
> + description: |
> + Delay between consecutive samples.
> + It is used if 'fsl,ave-ctrl' > 1, counts at 2 kHz and its
> + default value (i. e. 2) is 1 ms.
> +
> + fsl,settling:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 1
> + maximum: 2047
> + default: 10
> + description: |
> + Delay between plate switch to next sample.
> + It counts at 2 kHz and its default (i. e. 10) is 5 ms.
> +
> + "#io-channel-cells":
> + const: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - interrupts
> +
> +if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - fsl,imx23-lradc
> +then:
> + properties:
> + fsl,lradc-touchscreen-wires:
> + const: 4
> +else:
> + properties:
> + fsl,lradc-touchscreen-wires:
> + enum: [4, 5]
Move this constraint to the top level and drop the 'else'.
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + lradc@80050000 {
> + compatible = "fsl,imx23-lradc";
> + reg = <0x80050000 0x2000>;
> + interrupts = <36>, <37>, <38>, <39>, <40>,
> + <41>, <42>, <43>, <44>;
> + clocks = <&clks 26>;
> + #io-channel-cells = <1>;
> + fsl,lradc-touchscreen-wires = <4>;
> + fsl,ave-ctrl = <4>;
> + fsl,ave-delay = <2>;
> + fsl,settling = <10>;
> + };
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-05-29 13:35 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-29 8:31 [PATCH v3 0/4] Support i.MX28 Amarula rmm board Dario Binacchi
2025-05-29 8:31 ` [PATCH v3 1/4] dt-bindings: mfd: convert mxs-lradc bindings to json-schema Dario Binacchi
2025-05-29 12:51 ` Rob Herring
2025-05-29 8:31 ` [PATCH v3 2/4] ARM: dts: imx28: add pwm7 muxing options Dario Binacchi
2025-05-29 8:31 ` [PATCH v3 4/4] ARM: dts: mxs: support i.MX28 Amarula rmm board Dario Binacchi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).