* [PATCH 0/5] arm64: dts: freescale: Add support for bytesatwork byteDEVKIT i.MX93
@ 2026-11-09 12:22 Frank Obergfell
2026-11-09 12:22 ` [PATCH 1/5] dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E Frank Obergfell
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Frank Obergfell @ 2026-11-09 12:22 UTC (permalink / raw)
To: Shawn Guo, Sascha Hauer, Frank Li, Neil Armstrong, Michael Walle,
Dario Binacchi, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Jessica Zhang, Fabio Estevam, Pengutronix Kernel Team,
Alexander Forsch, dri-devel, devicetree, imx, linux-arm-kernel,
linux-kernel, Frank Obergfell
This series introduces support for the bytesatwork byteENGINE i.MX93
System on Module (SoM) and the carrier boards byteDEVKIT v1.0 and v2.0[cite: 59, 60].
It also adds display support for the integrated Youritech ILI9806E
MIPI-DSI panel by extending the existing ILI9806E panel driver[cite: 56, 57].
Overview of the series:
- Patch 1: Documents the vendor prefix for Youritech and adds the compatible
string to the Ilitek ILI9806E panel binding[cite: 56].
- Patch 2: Extends the ILI9806E core and DSI driver with init sequence,
display timings, burst mode, and supplies for the Youritech panel[cite: 57].
- Patch 3: Adds the MIPI-DSI controller node and the bidirectional OF-graph
link to the LCDIF in imx93.dtsi[cite: 58].
- Patch 4: Documents the bytesatwork vendor prefix and DT bindings in fsl.yaml
for the byteENGINE and byteDEVKIT platforms[cite: 59].
- Patch 5: Adds the Devicetrees for the byteENGINE SoM and byteDEVKIT v1.0/v2.0
carrier boards[cite: 60].
Subsystem / Merging notes:
Patches 1 and 2 target the DRM subsystem (dri-devel / drm-misc)[cite: 56, 57].
Patches 3, 4, and 5 target the Freescale/ARM SoC tree (Shawn Guo)[cite: 58, 59, 60].
They are submitted together to provide full context for the hardware support.
Testing:
- Validated on physical hardware (bytesatwork byteDEVKIT v1.0 and v2.0).
- Passed `make dt_binding_check` without warnings[cite: 56, 59].
- Passed `make CHECK_DTBS=y` for both target DTBs[cite: 60].
- Passed `./scripts/checkpatch.pl` on all patches[cite: 56, 57, 58, 59, 60].
Frank Obergfell (5):
dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E
drm/panel: ilitek-ili9806e: Add support for Youritech ILI9806E panel
arm64: dts: freescale: imx93: Add MIPI DSI controller node
dt-bindings: arm: fsl: Add byteENGINE i.MX93 platforms
arm64: dts: freescale: Add support for bytesatwork i.MX93
Documentation/devicetree/bindings/arm/fsl.yaml | 12 +
.../devicetree/bindings/display/panel/ilitek,ili9806e.yaml | 1 +
Documentation/devicetree/bindings/vendor-prefixes.yaml | 4 +
MAINTAINERS | 8 +
arch/arm64/boot/dts/freescale/Makefile | 2 +
arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts | 459 ++++++++++++++++++
arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts | 441 +++++++++++++++++
arch/arm64/boot/dts/freescale/imx93-byteengine.dtsi | 199 ++++++++
arch/arm64/boot/dts/freescale/imx93.dtsi | 34 ++
drivers/gpu/drm/panel/panel-ilitek-ili9806e-core.c | 4 +-
drivers/gpu/drm/panel/panel-ilitek-ili9806e-dsi.c | 158 ++++++
11 files changed, 1321 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx93-byteengine.dtsi
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/5] dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E
2026-11-09 12:22 [PATCH 0/5] arm64: dts: freescale: Add support for bytesatwork byteDEVKIT i.MX93 Frank Obergfell
@ 2026-11-09 12:22 ` Frank Obergfell
2026-11-09 12:32 ` sashiko-bot
2026-11-09 12:22 ` [PATCH 2/5] drm/panel: ilitek-ili9806e: Add support for Youritech ILI9806E panel Frank Obergfell
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Frank Obergfell @ 2026-11-09 12:22 UTC (permalink / raw)
To: Shawn Guo, Sascha Hauer, Frank Li, Neil Armstrong, Michael Walle,
Dario Binacchi, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Jessica Zhang, Fabio Estevam, Pengutronix Kernel Team,
Alexander Forsch, dri-devel, devicetree, imx, linux-arm-kernel,
linux-kernel, Frank Obergfell
Add youritech panel as a compatible
Signed-off-by: Frank Obergfell <frank.obergfell@bytesatwork.ch>
---
.../devicetree/bindings/display/panel/ilitek,ili9806e.yaml | 1 +
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
2 files changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml
index 2080d9e0ffac..6f29ddc1fd09 100644
--- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml
+++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml
@@ -19,6 +19,7 @@ properties:
- densitron,dmt028vghmcmi-1d
- ortustech,com35h3p70ulc
- rocktech,rk050hr345-ct106a
+ - youritech,ili9806e
- const: ilitek,ili9806e
reg:
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 5471a06f93f1..ac2f54adde73 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1979,6 +1979,8 @@ patternProperties:
description: YSH & ATIL
"^yones-toptech,.*":
description: Yones Toptech Co., Ltd.
+ "^youritech,.*":
+ description: Shenzhen Youritech Co., Ltd.
"^youyeetoo,.*":
description: Hong Kong Cybodev Tech Limited (youyeetoo)
"^ys,.*":
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/5] drm/panel: ilitek-ili9806e: Add support for Youritech ILI9806E panel
2026-11-09 12:22 [PATCH 0/5] arm64: dts: freescale: Add support for bytesatwork byteDEVKIT i.MX93 Frank Obergfell
2026-11-09 12:22 ` [PATCH 1/5] dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E Frank Obergfell
@ 2026-11-09 12:22 ` Frank Obergfell
2026-11-09 12:22 ` [PATCH 3/5] arm64: dts: freescale: imx93: Add MIPI DSI controller node Frank Obergfell
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Frank Obergfell @ 2026-11-09 12:22 UTC (permalink / raw)
To: Shawn Guo, Sascha Hauer, Frank Li, Neil Armstrong, Michael Walle,
Dario Binacchi, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Jessica Zhang, Fabio Estevam, Pengutronix Kernel Team,
Alexander Forsch, dri-devel, devicetree, imx, linux-arm-kernel,
linux-kernel, Frank Obergfell
Add the MIPI-DSI driver for the Youritech panel with the ILI9806E
controller.
Signed-off-by: Frank Obergfell <frank.obergfell@bytesatwork.ch>
---
.../drm/panel/panel-ilitek-ili9806e-core.c | 4 +-
.../gpu/drm/panel/panel-ilitek-ili9806e-dsi.c | 158 ++++++++++++++++++
2 files changed, 161 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9806e-core.c b/drivers/gpu/drm/panel/panel-ilitek-ili9806e-core.c
index 81d48c402aec..4447a65c9007 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9806e-core.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9806e-core.c
@@ -91,7 +91,9 @@ int ili9806e_probe(struct device *dev, void *transport,
if (of_device_is_compatible(dev->of_node,
"densitron,dmt028vghmcmi-1d") ||
of_device_is_compatible(dev->of_node,
- "ortustech,com35h3p70ulc")) {
+ "ortustech,com35h3p70ulc") ||
+ of_device_is_compatible(dev->of_node,
+ "youritech,ili9806e")) {
ctx->supplies[ctx->num_supplies++].supply = "vccio";
set_prepare_prev_first = true;
}
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9806e-dsi.c b/drivers/gpu/drm/panel/panel-ilitek-ili9806e-dsi.c
index 89915d58f69d..e83d643363b3 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9806e-dsi.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9806e-dsi.c
@@ -464,9 +464,167 @@ static const struct ili9806e_dsi_panel_desc dmt028vghmcmi_1d_desc = {
.lanes = 2,
};
+static void youritech_ili9806e_init(struct mipi_dsi_multi_context *ctx)
+{
+ /* Switch to page 1 */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xff, 0xff, 0x98, 0x06, 0x04, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x08, 0x10); /* Output SDA */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x20, 0x00); /* set DE/VSYNC mode */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x21, 0x01); /* DE = 1 Active */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x30, 0x01); /* Resolution 480 X 854 */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x31, 0x00); /* Inversion setting 2-dot */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x40, 0x16); /* BT AVDD, AVDD */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x41, 0x33);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x42, 0x03);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x43, 0x09); /* SET VGH clamp level */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x44, 0x06); /* SET VGL clamp level */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x50, 0x88); /* VREG1 */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x51, 0x88); /* VREG2 */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x52, 0x00); /* Flicker MSB */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x53, 0x49); /* Flicker LSB */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x55, 0x49);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x60, 0x07);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x61, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x62, 0x07);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x63, 0x00);
+
+ /* Positive Gamma */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa0, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa1, 0x09);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa2, 0x11);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa3, 0x0b);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa4, 0x05);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa5, 0x08);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa6, 0x06);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa7, 0x04);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa8, 0x09);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xa9, 0x0c);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xaa, 0x15);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xab, 0x08);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xac, 0x0f);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xad, 0x12);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xae, 0x09);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xaf, 0x00);
+
+ /* Negative Gamma */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc0, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc1, 0x09);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc2, 0x10);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc3, 0x0c);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc4, 0x05);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc5, 0x08);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc6, 0x06);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc7, 0x04);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc8, 0x08);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xc9, 0x0c);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xca, 0x14);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xcb, 0x08);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xcc, 0x0f);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xcd, 0x11);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xce, 0x09);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xcf, 0x00);
+
+ /* Switch to page 6 (GIP settings) */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xff, 0xff, 0x98, 0x06, 0x04, 0x06);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x00, 0x20);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x01, 0x0a);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x02, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x03, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x04, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x05, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x06, 0x98);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x07, 0x06);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x08, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x09, 0x80);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x0a, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x0b, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x0c, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x0d, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x0e, 0x05);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x0f, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x10, 0xf0);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x11, 0xf4);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x12, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x13, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x14, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x15, 0xc0);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x16, 0x08);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x17, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x18, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x19, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x1a, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x1b, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x1c, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x1d, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x20, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x21, 0x23);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x22, 0x45);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x23, 0x67);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x24, 0x01);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x25, 0x23);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x26, 0x45);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x27, 0x67);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x30, 0x11);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x31, 0x11);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x32, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x33, 0xee);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x34, 0xff);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x35, 0xbb);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x36, 0xaa);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x37, 0xdd);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x38, 0xcc);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x39, 0x66);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x3a, 0x77);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x3b, 0x22);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x3c, 0x22);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x3d, 0x22);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x3e, 0x22);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x3f, 0x22);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x40, 0x22);
+
+ /* Switch to page 7 */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xff, 0xff, 0x98, 0x06, 0x04, 0x07);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x17, 0x22);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x02, 0x77);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x26, 0xb2);
+
+ /* Switch to page 0 & set Pixel Format (RGB888 = 0x77) */
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xff, 0xff, 0x98, 0x06, 0x04, 0x00);
+ mipi_dsi_dcs_write_seq_multi(ctx, 0x3a, 0x77);
+}
+
+static const struct drm_display_mode youritech_ili9806e_default_mode = {
+ .clock = 30000,
+
+ .hdisplay = 480,
+ .hsync_start = 480 + 25,
+ .hsync_end = 480 + 25 + 10,
+ .htotal = 480 + 25 + 10 + 125,
+
+ .vdisplay = 854,
+ .vsync_start = 854 + 20,
+ .vsync_end = 854 + 20 + 4,
+ .vtotal = 854 + 20 + 4 + 16,
+
+ .width_mm = 68,
+ .height_mm = 121,
+
+ .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
+};
+
+static const struct ili9806e_dsi_panel_desc youritech_ili9806e_desc = {
+ .init_sequence = youritech_ili9806e_init,
+ .display_mode = &youritech_ili9806e_default_mode,
+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
+ MIPI_DSI_MODE_LPM,
+ .format = MIPI_DSI_FMT_RGB888,
+ .lanes = 2,
+};
+
static const struct of_device_id ili9806e_dsi_of_match[] = {
{ .compatible = "densitron,dmt028vghmcmi-1d", .data = &dmt028vghmcmi_1d_desc },
{ .compatible = "ortustech,com35h3p70ulc", .data = &com35h3p70ulc_desc },
+ { .compatible = "youritech,ili9806e", .data = &youritech_ili9806e_desc },
{ }
};
MODULE_DEVICE_TABLE(of, ili9806e_dsi_of_match);
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/5] arm64: dts: freescale: imx93: Add MIPI DSI controller node
2026-11-09 12:22 [PATCH 0/5] arm64: dts: freescale: Add support for bytesatwork byteDEVKIT i.MX93 Frank Obergfell
2026-11-09 12:22 ` [PATCH 1/5] dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E Frank Obergfell
2026-11-09 12:22 ` [PATCH 2/5] drm/panel: ilitek-ili9806e: Add support for Youritech ILI9806E panel Frank Obergfell
@ 2026-11-09 12:22 ` Frank Obergfell
2026-11-09 12:22 ` [PATCH 4/5] dt-bindings: arm: fsl: Add byteENGINE i.MX93 platforms Frank Obergfell
2026-11-09 12:22 ` [PATCH 5/5] arm64: dts: freescale: Add support for bytesatwork i.MX93 Frank Obergfell
4 siblings, 0 replies; 9+ messages in thread
From: Frank Obergfell @ 2026-11-09 12:22 UTC (permalink / raw)
To: Shawn Guo, Sascha Hauer, Frank Li, Neil Armstrong, Michael Walle,
Dario Binacchi, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Jessica Zhang, Fabio Estevam, Pengutronix Kernel Team,
Alexander Forsch, dri-devel, devicetree, imx, linux-arm-kernel,
linux-kernel, Frank Obergfell
Add dsi node to the i.MX93 for support with mipi dsi panels
Signed-off-by: Frank Obergfell <frank.obergfell@bytesatwork.ch>
---
arch/arm64/boot/dts/freescale/imx93.dtsi | 34 ++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
index e926b6360a9d..1123e372eb79 100644
--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
@@ -58,6 +58,39 @@ npu@4a900000 {
<&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
assigned-clock-rates = <800000000>, <133000000>;
};
+
+ dsi: dsi@4ae10000 {
+ compatible = "fsl,imx93-mipi-dsi";
+ reg = <0x4ae10000 0x10000>;
+ interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk IMX93_CLK_MIPI_DSI_GATE>,
+ <&clk IMX93_CLK_MEDIA_DISP_PIX>,
+ <&clk IMX93_CLK_MIPI_PHY_CFG>,
+ <&clk IMX93_CLK_24M>;
+ clock-names = "pclk", "pix", "phy_cfg", "phy_ref";
+ fsl,media-blk-ctrl = <&media_blk_ctrl>;
+ power-domains = <&media_blk_ctrl 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ dsi_to_lcdif: endpoint {
+ remote-endpoint = <&lcdif_to_dsi>;
+ };
+ };
+
+ dsi_out_port: port@1 {
+ reg = <1>;
+ };
+ };
+ };
};
sram: sram@20480000 {
@@ -183,6 +216,7 @@ lcdif_to_ldb: endpoint@1 {
lcdif_to_dsi: endpoint@2 {
reg = <2>;
+ remote-endpoint = <&dsi_to_lcdif>;
};
};
};
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/5] dt-bindings: arm: fsl: Add byteENGINE i.MX93 platforms
2026-11-09 12:22 [PATCH 0/5] arm64: dts: freescale: Add support for bytesatwork byteDEVKIT i.MX93 Frank Obergfell
` (2 preceding siblings ...)
2026-11-09 12:22 ` [PATCH 3/5] arm64: dts: freescale: imx93: Add MIPI DSI controller node Frank Obergfell
@ 2026-11-09 12:22 ` Frank Obergfell
2026-11-09 12:50 ` sashiko-bot
2026-11-09 12:22 ` [PATCH 5/5] arm64: dts: freescale: Add support for bytesatwork i.MX93 Frank Obergfell
4 siblings, 1 reply; 9+ messages in thread
From: Frank Obergfell @ 2026-11-09 12:22 UTC (permalink / raw)
To: Shawn Guo, Sascha Hauer, Frank Li, Neil Armstrong, Michael Walle,
Dario Binacchi, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Jessica Zhang, Fabio Estevam, Pengutronix Kernel Team,
Alexander Forsch, dri-devel, devicetree, imx, linux-arm-kernel,
linux-kernel, Frank Obergfell
Document the compatible strings for the bytesatwork byteENGINE i.MX93
System on Module (SoM) and the byteENGINE carrier board.
Signed-off-by: Frank Obergfell <frank.obergfell@bytesatwork.ch>
---
Documentation/devicetree/bindings/arm/fsl.yaml | 12 ++++++++++++
.../devicetree/bindings/vendor-prefixes.yaml | 2 ++
2 files changed, 14 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index c8290a83205b..d342930981d2 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -1555,6 +1555,18 @@ properties:
- fsl,imx93-wireless-frdm # i.MX93 and IW610G WLCSP (Wi-Fi + BLE + 802.15.4) SiP FRDM Board
- const: fsl,imx93
+ - description: i.MX93 boards with bytesatwork byteENGINE and bytedevkit
+ items:
+ - enum:
+ - bytesatwork,bytedevkit-imx93
+ - const: bytesatwork,byteengine-imx93
+ - const: fsl,imx93
+
+ - description: i.MX93 boards with bytesatwork byteENGINE OSM Modules
+ items:
+ - const: bytesatwork,byteengine-imx93
+ - const: fsl,imx93
+
- description: i.MX93 boards with Toradex Lino Modules and Verdin Adapter
items:
- enum:
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index ac2f54adde73..95f386db1d01 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -285,6 +285,8 @@ patternProperties:
description: B&R Industrial Automation GmbH
"^bytedance,.*":
description: ByteDance Ltd.
+ "^bytesatwork,.*":
+ description: bytesatwork AG
"^calamp,.*":
description: CalAmp Corp.
"^calao,.*":
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 5/5] arm64: dts: freescale: Add support for bytesatwork i.MX93
2026-11-09 12:22 [PATCH 0/5] arm64: dts: freescale: Add support for bytesatwork byteDEVKIT i.MX93 Frank Obergfell
` (3 preceding siblings ...)
2026-11-09 12:22 ` [PATCH 4/5] dt-bindings: arm: fsl: Add byteENGINE i.MX93 platforms Frank Obergfell
@ 2026-11-09 12:22 ` Frank Obergfell
2026-11-09 13:15 ` sashiko-bot
4 siblings, 1 reply; 9+ messages in thread
From: Frank Obergfell @ 2026-11-09 12:22 UTC (permalink / raw)
To: Shawn Guo, Sascha Hauer, Frank Li, Neil Armstrong, Michael Walle,
Dario Binacchi, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Jessica Zhang, Fabio Estevam, Pengutronix Kernel Team,
Alexander Forsch, dri-devel, devicetree, imx, linux-arm-kernel,
linux-kernel, Frank Obergfell
Add support for the bytesatwork i.MX93 byteengine placed on the
bytedevkit v1 and bytedevkit v2
Signed-off-by: Frank Obergfell <frank.obergfell@bytesatwork.ch>
---
MAINTAINERS | 8 +
arch/arm64/boot/dts/freescale/Makefile | 2 +
.../dts/freescale/imx93-bytedevkit-v1-0.dts | 457 ++++++++++++++++++
.../dts/freescale/imx93-bytedevkit-v2-0.dts | 439 +++++++++++++++++
.../boot/dts/freescale/imx93-byteengine.dtsi | 199 ++++++++
5 files changed, 1105 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx93-byteengine.dtsi
diff --git a/MAINTAINERS b/MAINTAINERS
index 93abbb315065..566ee0a52182 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5877,6 +5877,14 @@ S: Maintained
F: Documentation/devicetree/bindings/net/can/st,stm32-bxcan.yaml
F: drivers/net/can/bxcan.c
+BYTESATWORK MODULES AND BOARDS
+M: Alexander Forsch <alexander.forsch@bytesatwork.ch>
+M: Frank Obergfell <frank.obergfell@bytesatwork.ch>
+S: Maintained
+F: arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts
+F: arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts
+F: arch/arm64/boot/dts/freescale/imx93-byteengine.dtsi
+
C-MEDIA CMI8788 DRIVER
M: Clemens Ladisch <clemens@ladisch.de>
L: linux-sound@vger.kernel.org
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index a80cccf34eb5..323e3c3dc7ae 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -898,6 +898,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm-pixpaper.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb
imx93-14x14-evk-mqs-dtbs += imx93-14x14-evk.dtb imx9-mqs.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk-mqs.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx93-bytedevkit-v1-0.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx93-bytedevkit-v2-0.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-lino-verdin-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-lino-verdin-dev.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts b/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts
new file mode 100644
index 000000000000..9662dd2c38e6
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts
@@ -0,0 +1,457 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2026 bytesatwork AG
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/net/ti-dp83867.h>
+#include "imx93-byteengine.dtsi"
+
+/ {
+ model = "bytesatwork byteDEVKIT OSM V1.0 i.MX93";
+ compatible = "bytesatwork,bytedevkit-imx93", "bytesatwork,byteengine-imx93", "fsl,imx93";
+
+ aliases {
+ serial0 = &lpuart1;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ reg_vdd_3v3: regulator-3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ reg_vdd_1v8: regulator-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ reg_vref_1v8: regulator-adc-vref {
+ compatible = "regulator-fixed";
+ regulator-name = "vref_1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ reg_usdhc2_vmmc: regulator-usdhc2 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+ regulator-name = "VSD_3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+ off-on-delay-us = <12000>;
+ enable-active-high;
+ };
+
+ reg_usb_otg1_vbus: regulator-otg {
+ compatible = "regulator-fixed";
+ regulator-name = "USB1_VBUS";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_usb2_vbus: regulator-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "USB2_VBUS";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio2 18 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+
+ lcd_bl: backlight-lvds {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lvds_backlight>;
+ compatible = "gpio-backlight";
+ gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
+ default-on;
+ };
+
+ mipi_bl: backlight-mipi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mipi_backlight>;
+ compatible = "gpio-backlight";
+ gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>;
+ default-on;
+ };
+};
+
+&adc1 {
+ vref-supply = <®_vref_1v8>;
+ status = "okay";
+};
+
+&eqos {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pinctrl_eqos>;
+ pinctrl-1 = <&pinctrl_eqos_sleep>;
+ phy-mode = "rgmii-id";
+ phy-handle = <ðphy_qos>;
+ status = "okay";
+
+ mdio {
+ compatible = "snps,dwmac-mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <5000000>;
+
+ ethphy_qos: ethernet-phyqos@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ enet-phy-lane-no-swap;
+ ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+ ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+ ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+ ti,dp83867-rxctrl-strap-quirk;
+ ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+ };
+ };
+};
+
+&fec {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pinctrl_fec>;
+ pinctrl-1 = <&pinctrl_fec_sleep>;
+ phy-mode = "rgmii-id";
+ phy-handle = <ðphy_fec>;
+ fsl,magic-packet;
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <5000000>;
+
+ ethphy_fec: ethernet-phyfec@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ enet-phy-lane-no-swap;
+ ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+ ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+ ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+ ti,dp83867-rxctrl-strap-quirk;
+ ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+ };
+ };
+};
+
+&lpi2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <400000>;
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pinctrl_lpi2c1>;
+ pinctrl-1 = <&pinctrl_lpi2c1>;
+ status = "disabled";
+
+ /* LVDS Touch */
+ touchscreen@5d {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lvds_touch>;
+ compatible = "goodix,gt911";
+ reg = <0x5d>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
+ irq-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
+ reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
+ touchscreen-inverted-x;
+ touchscreen-inverted-y;
+ };
+};
+
+&lpi2c2 {
+ /* Mipi Touch */
+ touchscreen@5d {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mipi_touch>;
+ compatible = "goodix,gt911";
+ reg = <0x5d>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+ irq-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
+ reset-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&lpuart1 { /* console */
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart1>;
+ status = "okay";
+};
+
+&lcdif {
+ status = "okay";
+};
+
+&media_blk_ctrl {
+ status = "okay";
+};
+
+&usbotg2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb2>;
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usbotg1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb1>;
+ dr_mode = "otg";
+ vbus-supply = <®_usb_otg1_vbus>;
+ status = "okay";
+};
+
+&usdhc2 {
+ pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+ pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+ pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+ pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+ pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
+ cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+ vmmc-supply = <®_usdhc2_vmmc>;
+ bus-width = <4>;
+ status = "okay";
+ no-sdio;
+ no-mmc;
+};
+
+&dsi {
+ status = "okay";
+
+ panel@0 {
+ compatible = "youritech,ili9806e", "ilitek,ili9806e";
+ reg = <0>;
+ backlight = <&mipi_bl>;
+ reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
+ vdd-supply = <®_vdd_3v3>;
+ vccio-supply = <®_vdd_1v8>;
+
+ port {
+ panel_mipi_in: endpoint {
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+ };
+};
+
+&dsi_out_port {
+ dsi_out: endpoint {
+ remote-endpoint = <&panel_mipi_in>;
+ };
+};
+
+&iomuxc {
+ pinctrl_eqos: eqos-grp {
+ fsl,pins = <
+ MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x57e
+ MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x57e
+ MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x57e
+ MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x57e
+ MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x57e
+ MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x57e
+ MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x5fe
+ MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57e
+ MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x57e
+ MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x57e
+ MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x57e
+ MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x57e
+ MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x5fe
+ MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57e
+ >;
+ };
+
+ pinctrl_eqos_sleep: eqossleep-grp {
+ fsl,pins = <
+ MX93_PAD_ENET1_MDC__GPIO4_IO00 0x31e
+ MX93_PAD_ENET1_MDIO__GPIO4_IO01 0x31e
+ MX93_PAD_ENET1_RD0__GPIO4_IO10 0x31e
+ MX93_PAD_ENET1_RD1__GPIO4_IO11 0x31e
+ MX93_PAD_ENET1_RD2__GPIO4_IO12 0x31e
+ MX93_PAD_ENET1_RD3__GPIO4_IO13 0x31e
+ MX93_PAD_ENET1_RXC__GPIO4_IO09 0x31e
+ MX93_PAD_ENET1_RX_CTL__GPIO4_IO08 0x31e
+ MX93_PAD_ENET1_TD0__GPIO4_IO05 0x31e
+ MX93_PAD_ENET1_TD1__GPIO4_IO04 0x31e
+ MX93_PAD_ENET1_TD2__GPIO4_IO03 0x31e
+ MX93_PAD_ENET1_TD3__GPIO4_IO02 0x31e
+ MX93_PAD_ENET1_TXC__GPIO4_IO07 0x31e
+ MX93_PAD_ENET1_TX_CTL__GPIO4_IO06 0x31e
+ >;
+ };
+
+ pinctrl_fec: fec-grp {
+ fsl,pins = <
+ MX93_PAD_ENET2_MDC__ENET1_MDC 0x57e
+ MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x57e
+ MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x57e
+ MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x57e
+ MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2 0x57e
+ MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3 0x57e
+ MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x5fe
+ MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x57e
+ MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x57e
+ MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x57e
+ MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2 0x57e
+ MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3 0x57e
+ MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC 0x5fe
+ MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x57e
+ >;
+ };
+
+ pinctrl_fec_sleep: fecsleep-grp {
+ fsl,pins = <
+ MX93_PAD_ENET2_MDC__GPIO4_IO14 0x51e
+ MX93_PAD_ENET2_MDIO__GPIO4_IO15 0x51e
+ MX93_PAD_ENET2_RD0__GPIO4_IO24 0x51e
+ MX93_PAD_ENET2_RD1__GPIO4_IO25 0x51e
+ MX93_PAD_ENET2_RD2__GPIO4_IO26 0x51e
+ MX93_PAD_ENET2_RD3__GPIO4_IO27 0x51e
+ MX93_PAD_ENET2_RXC__GPIO4_IO23 0x51e
+ MX93_PAD_ENET2_RX_CTL__GPIO4_IO22 0x51e
+ MX93_PAD_ENET2_TD0__GPIO4_IO19 0x51e
+ MX93_PAD_ENET2_TD1__GPIO4_IO18 0x51e
+ MX93_PAD_ENET2_TD2__GPIO4_IO17 0x51e
+ MX93_PAD_ENET2_TD3__GPIO4_IO16 0x51e
+ MX93_PAD_ENET2_TXC__GPIO4_IO21 0x51e
+ MX93_PAD_ENET2_TX_CTL__GPIO4_IO20 0x51e
+ >;
+ };
+
+ pinctrl_lpi2c1: lpi2c1-grp {
+ fsl,pins = <
+ MX93_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e
+ MX93_PAD_I2C1_SDA__LPI2C1_SDA 0x40000b9e
+ >;
+ };
+
+ pinctrl_uart1: uart1-grp {
+ fsl,pins = <
+ MX93_PAD_UART1_RXD__LPUART1_RX 0x31e
+ MX93_PAD_UART1_TXD__LPUART1_TX 0x31e
+ >;
+ };
+
+ pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_RESET_B__GPIO3_IO07 0x31e
+ >;
+ };
+
+ pinctrl_usdhc2_gpio: usdhc2gpio-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CD_B__GPIO3_IO00 0x31e
+ >;
+ };
+
+ pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleep-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CD_B__GPIO3_IO00 0x51e
+ >;
+ };
+
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc2: usdhc2-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CLK__USDHC2_CLK 0x1582
+ MX93_PAD_SD2_CMD__USDHC2_CMD 0x40001382
+ MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x40001382
+ MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x40001382
+ MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x40001382
+ MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x40001382
+ MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
+ >;
+ };
+
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CLK__USDHC2_CLK 0x158e
+ MX93_PAD_SD2_CMD__USDHC2_CMD 0x4000138e
+ MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x4000138e
+ MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x4000138e
+ MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x4000138e
+ MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x4000138e
+ MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
+ >;
+ };
+
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CLK__USDHC2_CLK 0x15fe
+ MX93_PAD_SD2_CMD__USDHC2_CMD 0x400013fe
+ MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x400013fe
+ MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x400013fe
+ MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x400013fe
+ MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x400013fe
+ MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
+ >;
+ };
+
+ pinctrl_usdhc2_sleep: usdhc2sleep-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CLK__GPIO3_IO01 0x51e
+ MX93_PAD_SD2_CMD__GPIO3_IO02 0x51e
+ MX93_PAD_SD2_DATA0__GPIO3_IO03 0x51e
+ MX93_PAD_SD2_DATA1__GPIO3_IO04 0x51e
+ MX93_PAD_SD2_DATA2__GPIO3_IO05 0x51e
+ MX93_PAD_SD2_DATA3__GPIO3_IO06 0x51e
+ MX93_PAD_SD2_VSELECT__GPIO3_IO19 0x51e
+ >;
+ };
+
+ pinctrl_usb1: usb1-grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO11__GPIO2_IO11 0x31e
+ >;
+ };
+
+ pinctrl_usb2: usb2-grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO18__GPIO2_IO18 0x31e
+ >;
+ };
+
+ pinctrl_lvds_backlight: lvds_backlight-grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO26__GPIO2_IO26 0x31e /* LVDS Backlight */
+ >;
+ };
+
+ pinctrl_lvds_touch: lvds_touch-grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO20__GPIO2_IO20 0x31e /* LVDS Touch INT */
+ MX93_PAD_GPIO_IO21__GPIO2_IO21 0x31e /* LVDS Touch RST */
+ >;
+ };
+
+ pinctrl_mipi_touch: mipi_touch-grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO21__GPIO2_IO21 0x31e /* MIPI Touch INT */
+ MX93_PAD_GPIO_IO20__GPIO2_IO20 0x31e /* MIPI Touch RST */
+ >;
+ };
+
+ pinctrl_mipi_backlight: mipi_bl-grp {
+ fsl,pins = <
+ MX93_PAD_CCM_CLKO1__GPIO3_IO26 0x31e /* MIPI Backlight */
+ MX93_PAD_GPIO_IO10__GPIO2_IO10 0x31e /* MIPI Reset */
+ >;
+ };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts b/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts
new file mode 100644
index 000000000000..52b38edfe5b6
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts
@@ -0,0 +1,439 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2026 bytesatwork AG
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/net/ti-dp83867.h>
+#include "imx93-byteengine.dtsi"
+
+/ {
+ model = "bytesatwork byteDEVKIT OSM V2.0 i.MX93";
+ compatible = "bytesatwork,bytedevkit-imx93", "bytesatwork,byteengine-imx93", "fsl,imx93";
+
+ aliases {
+ serial0 = &lpuart1;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ reg_vdd_3v3: regulator-3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ reg_vdd_1v8: regulator-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd_1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ reg_vref_1v8: regulator-adc-vref {
+ compatible = "regulator-fixed";
+ regulator-name = "vref_1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ reg_usdhc2_vmmc: regulator-usdhc2 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+ regulator-name = "VSD_3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+ off-on-delay-us = <12000>;
+ enable-active-high;
+ };
+
+ reg_usb2_vbus: regulator-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "USB2_VBUS";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio2 18 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+
+ lcd_bl: backlight-lvds {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lvds_backlight>;
+ compatible = "gpio-backlight";
+ gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
+ default-on;
+ };
+
+ mipi_bl: backlight-mipi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mipi_backlight>;
+ compatible = "gpio-backlight";
+ gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>;
+ default-on;
+ };
+};
+
+&adc1 {
+ vref-supply = <®_vref_1v8>;
+ status = "okay";
+};
+
+&eqos {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pinctrl_eqos>;
+ pinctrl-1 = <&pinctrl_eqos_sleep>;
+ phy-mode = "rgmii-id";
+ phy-handle = <ðphy_qos>;
+ status = "okay";
+
+ mdio {
+ compatible = "snps,dwmac-mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <5000000>;
+
+ ethphy_qos: ethernet-phyqos@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ enet-phy-lane-no-swap;
+ ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+ ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+ ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+ ti,dp83867-rxctrl-strap-quirk;
+ ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+ };
+ };
+};
+
+&fec {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pinctrl_fec>;
+ pinctrl-1 = <&pinctrl_fec_sleep>;
+ phy-mode = "rgmii-id";
+ phy-handle = <ðphy_fec>;
+ fsl,magic-packet;
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <5000000>;
+
+ ethphy_fec: ethernet-phyfec@c {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0xc>;
+ enet-phy-lane-no-swap;
+ ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+ ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+ ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+ ti,dp83867-rxctrl-strap-quirk;
+ ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+ };
+ };
+};
+
+&lpi2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <400000>;
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pinctrl_lpi2c1>;
+ pinctrl-1 = <&pinctrl_lpi2c1>;
+ status = "disabled";
+
+ /* LVDS Touch */
+ touchscreen@5d {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lvds_touch>;
+ compatible = "goodix,gt911";
+ reg = <0x5d>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
+ irq-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
+ reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
+ touchscreen-inverted-x;
+ touchscreen-inverted-y;
+ };
+};
+
+&lpi2c2 {
+ /* Mipi Touch */
+ touchscreen@5d {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mipi_touch>;
+ compatible = "goodix,gt911";
+ reg = <0x5d>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+ irq-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
+ reset-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&lpuart1 { /* console */
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart1>;
+ status = "okay";
+};
+
+&lcdif {
+ status = "okay";
+};
+
+&media_blk_ctrl {
+ status = "okay";
+};
+
+&usbotg2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb2>;
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usbotg1 {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usdhc2 {
+ pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+ pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+ pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+ pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+ pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
+ cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+ vmmc-supply = <®_usdhc2_vmmc>;
+ bus-width = <4>;
+ status = "okay";
+ no-sdio;
+ no-mmc;
+};
+
+&dsi {
+ status = "okay";
+
+ panel@0 {
+ compatible = "youritech,ili9806e", "ilitek,ili9806e";
+ reg = <0>;
+ backlight = <&mipi_bl>;
+ reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
+ vdd-supply = <®_vdd_3v3>;
+ vccio-supply = <®_vdd_1v8>;
+
+ port {
+ panel_mipi_in: endpoint {
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+ };
+};
+
+&dsi_out_port {
+ dsi_out: endpoint {
+ remote-endpoint = <&panel_mipi_in>;
+ };
+};
+
+&iomuxc {
+ pinctrl_eqos: eqos-grp {
+ fsl,pins = <
+ MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x57e
+ MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x57e
+ MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x57e
+ MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x57e
+ MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x57e
+ MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x57e
+ MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x5fe
+ MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57e
+ MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x57e
+ MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x57e
+ MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x57e
+ MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x57e
+ MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x5fe
+ MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57e
+ >;
+ };
+
+ pinctrl_eqos_sleep: eqosgrpsleep-grp {
+ fsl,pins = <
+ MX93_PAD_ENET1_MDC__GPIO4_IO00 0x31e
+ MX93_PAD_ENET1_MDIO__GPIO4_IO01 0x31e
+ MX93_PAD_ENET1_RD0__GPIO4_IO10 0x31e
+ MX93_PAD_ENET1_RD1__GPIO4_IO11 0x31e
+ MX93_PAD_ENET1_RD2__GPIO4_IO12 0x31e
+ MX93_PAD_ENET1_RD3__GPIO4_IO13 0x31e
+ MX93_PAD_ENET1_RXC__GPIO4_IO09 0x31e
+ MX93_PAD_ENET1_RX_CTL__GPIO4_IO08 0x31e
+ MX93_PAD_ENET1_TD0__GPIO4_IO05 0x31e
+ MX93_PAD_ENET1_TD1__GPIO4_IO04 0x31e
+ MX93_PAD_ENET1_TD2__GPIO4_IO03 0x31e
+ MX93_PAD_ENET1_TD3__GPIO4_IO02 0x31e
+ MX93_PAD_ENET1_TXC__GPIO4_IO07 0x31e
+ MX93_PAD_ENET1_TX_CTL__GPIO4_IO06 0x31e
+ >;
+ };
+
+ pinctrl_fec: fec-grp {
+ fsl,pins = <
+ MX93_PAD_ENET2_MDC__ENET1_MDC 0x57e
+ MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x57e
+ MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x57e
+ MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x57e
+ MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2 0x57e
+ MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3 0x57e
+ MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x5fe
+ MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x57e
+ MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x57e
+ MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x57e
+ MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2 0x57e
+ MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3 0x57e
+ MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC 0x5fe
+ MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x57e
+ >;
+ };
+
+ pinctrl_fec_sleep: fecsleep-grp {
+ fsl,pins = <
+ MX93_PAD_ENET2_MDC__GPIO4_IO14 0x51e
+ MX93_PAD_ENET2_MDIO__GPIO4_IO15 0x51e
+ MX93_PAD_ENET2_RD0__GPIO4_IO24 0x51e
+ MX93_PAD_ENET2_RD1__GPIO4_IO25 0x51e
+ MX93_PAD_ENET2_RD2__GPIO4_IO26 0x51e
+ MX93_PAD_ENET2_RD3__GPIO4_IO27 0x51e
+ MX93_PAD_ENET2_RXC__GPIO4_IO23 0x51e
+ MX93_PAD_ENET2_RX_CTL__GPIO4_IO22 0x51e
+ MX93_PAD_ENET2_TD0__GPIO4_IO19 0x51e
+ MX93_PAD_ENET2_TD1__GPIO4_IO18 0x51e
+ MX93_PAD_ENET2_TD2__GPIO4_IO17 0x51e
+ MX93_PAD_ENET2_TD3__GPIO4_IO16 0x51e
+ MX93_PAD_ENET2_TXC__GPIO4_IO21 0x51e
+ MX93_PAD_ENET2_TX_CTL__GPIO4_IO20 0x51e
+ >;
+ };
+
+ pinctrl_lpi2c1: lpi2c1-grp {
+ fsl,pins = <
+ MX93_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e
+ MX93_PAD_I2C1_SDA__LPI2C1_SDA 0x40000b9e
+ >;
+ };
+
+ pinctrl_uart1: uart1-grp {
+ fsl,pins = <
+ MX93_PAD_UART1_RXD__LPUART1_RX 0x31e
+ MX93_PAD_UART1_TXD__LPUART1_TX 0x31e
+ >;
+ };
+
+ pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_RESET_B__GPIO3_IO07 0x31e
+ >;
+ };
+
+ pinctrl_usdhc2_gpio: usdhc2gpio-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CD_B__GPIO3_IO00 0x31e
+ >;
+ };
+
+ pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleep-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CD_B__GPIO3_IO00 0x51e
+ >;
+ };
+
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc2: usdhc2-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CLK__USDHC2_CLK 0x1582
+ MX93_PAD_SD2_CMD__USDHC2_CMD 0x40001382
+ MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x40001382
+ MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x40001382
+ MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x40001382
+ MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x40001382
+ MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
+ >;
+ };
+
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CLK__USDHC2_CLK 0x158e
+ MX93_PAD_SD2_CMD__USDHC2_CMD 0x4000138e
+ MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x4000138e
+ MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x4000138e
+ MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x4000138e
+ MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x4000138e
+ MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
+ >;
+ };
+
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CLK__USDHC2_CLK 0x15fe
+ MX93_PAD_SD2_CMD__USDHC2_CMD 0x400013fe
+ MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x400013fe
+ MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x400013fe
+ MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x400013fe
+ MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x400013fe
+ MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e
+ >;
+ };
+
+ pinctrl_usdhc2_sleep: usdhc2sleep-grp {
+ fsl,pins = <
+ MX93_PAD_SD2_CLK__GPIO3_IO01 0x51e
+ MX93_PAD_SD2_CMD__GPIO3_IO02 0x51e
+ MX93_PAD_SD2_DATA0__GPIO3_IO03 0x51e
+ MX93_PAD_SD2_DATA1__GPIO3_IO04 0x51e
+ MX93_PAD_SD2_DATA2__GPIO3_IO05 0x51e
+ MX93_PAD_SD2_DATA3__GPIO3_IO06 0x51e
+ MX93_PAD_SD2_VSELECT__GPIO3_IO19 0x51e
+ >;
+ };
+
+ pinctrl_usb2: usb2-grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO18__GPIO2_IO18 0x31e
+ >;
+ };
+
+ pinctrl_lvds_backlight: lvds_backlight-grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO26__GPIO2_IO26 0x31e /* LVDS Backlight */
+ >;
+ };
+
+ pinctrl_lvds_touch: lvds_touch_grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO20__GPIO2_IO20 0x31e /* LVDS Touch INT */
+ MX93_PAD_GPIO_IO21__GPIO2_IO21 0x31e /* LVDS Touch RST */
+ >;
+ };
+
+ pinctrl_mipi_touch: mipi_touch-grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO21__GPIO2_IO21 0x31e /* MIPI Touch INT */
+ MX93_PAD_GPIO_IO20__GPIO2_IO20 0x31e /* MIPI Touch RST */
+ >;
+ };
+
+ pinctrl_mipi_backlight: mipi_bl-grp {
+ fsl,pins = <
+ MX93_PAD_CCM_CLKO1__GPIO3_IO26 0x31e /* MIPI Backlight */
+ MX93_PAD_GPIO_IO10__GPIO2_IO10 0x31e /* MIPI Reset */
+ >;
+ };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx93-byteengine.dtsi b/arch/arm64/boot/dts/freescale/imx93-byteengine.dtsi
new file mode 100644
index 000000000000..774d08db5135
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx93-byteengine.dtsi
@@ -0,0 +1,199 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2026 bytesatwork AG
+ */
+
+#include "imx93.dtsi"
+
+/ {
+ model = "bytesatwork byteENGINE i.MX93";
+ compatible = "bytesatwork,byteengine-imx93", "fsl,imx93";
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ ele_reserved: ele-reserved@a4120000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0xa4120000 0 0x100000>;
+ no-map;
+ };
+ };
+};
+
+&mu1 {
+ status = "okay";
+};
+
+&mu2 {
+ status = "okay";
+};
+
+&lpi2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <400000>;
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pinctrl_lpi2c2>;
+ pinctrl-1 = <&pinctrl_lpi2c2>;
+ status = "okay";
+
+ pmic@25 {
+ compatible = "nxp,pca9451a";
+ reg = <0x25>;
+
+ regulators {
+ buck1: BUCK1 {
+ regulator-name = "BUCK1";
+ regulator-min-microvolt = <650000>;
+ regulator-max-microvolt = <2237500>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <3125>;
+ };
+
+ buck2: BUCK2 {
+ regulator-name = "BUCK2";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <2187500>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <3125>;
+ };
+
+ buck4: BUCK4 {
+ regulator-name = "BUCK4";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ buck5: BUCK5 {
+ regulator-name = "BUCK5";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ buck6: BUCK6 {
+ regulator-name = "BUCK6";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo1: LDO1 {
+ regulator-name = "LDO1";
+ regulator-min-microvolt = <1600000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo4: LDO4 {
+ regulator-name = "LDO4";
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo5: LDO5 {
+ regulator-name = "LDO5";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ };
+ };
+
+ /* I2C IOexpander */
+ tca6418e: tca6418e@34 {
+ compatible = "ti,tca6418";
+ reg = <0x34>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <10 IRQ_TYPE_EDGE_FALLING>;
+ };
+};
+
+&usdhc1 {
+ pinctrl-names = "default", "state_100mhz", "state_200mhz";
+ pinctrl-0 = <&pinctrl_usdhc1>;
+ pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+ pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+ bus-width = <8>;
+ non-removable;
+ status = "okay";
+};
+
+&wdog3 {
+ status = "okay";
+};
+
+&iomuxc {
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc1: usdhc1grp {
+ fsl,pins = <
+ MX93_PAD_SD1_CLK__USDHC1_CLK 0x1582
+ MX93_PAD_SD1_CMD__USDHC1_CMD 0x40001382
+ MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x40001382
+ MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x40001382
+ MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x40001382
+ MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x40001382
+ MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x40001382
+ MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x40001382
+ MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x40001382
+ MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x40001382
+ MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x1582
+ >;
+ };
+
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+ fsl,pins = <
+ MX93_PAD_SD1_CLK__USDHC1_CLK 0x158e
+ MX93_PAD_SD1_CMD__USDHC1_CMD 0x4000138e
+ MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x4000138e
+ MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x4000138e
+ MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x4000138e
+ MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x4000138e
+ MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x4000138e
+ MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x4000138e
+ MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x4000138e
+ MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x4000138e
+ MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x158e
+ >;
+ };
+
+ /* need to config the SION for data and cmd pad, refer to ERR052021 */
+ pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+ fsl,pins = <
+ MX93_PAD_SD1_CLK__USDHC1_CLK 0x15fe
+ MX93_PAD_SD1_CMD__USDHC1_CMD 0x400013fe
+ MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x400013fe
+ MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x400013fe
+ MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x400013fe
+ MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x400013fe
+ MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x400013fe
+ MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x400013fe
+ MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x400013fe
+ MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x400013fe
+ MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x15fe
+ >;
+ };
+
+ pinctrl_lpi2c2: lpi2c2grp {
+ fsl,pins = <
+ MX93_PAD_I2C2_SCL__LPI2C2_SCL 0x40000b9e
+ MX93_PAD_I2C2_SDA__LPI2C2_SDA 0x40000b9e
+ MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10 0x1280
+ >;
+ };
+};
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/5] dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E
2026-11-09 12:22 ` [PATCH 1/5] dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E Frank Obergfell
@ 2026-11-09 12:32 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-11-09 12:32 UTC (permalink / raw)
To: Frank Obergfell; +Cc: dri-devel, devicetree, imx, robh, conor+dt, Frank.Li
Thank you for your contribution! Sashiko AI review found 2 potential
issues to consider:
- [Medium] dt-bindings: ilitek,ili9806e: non-specific youritech,ili9806e
compatible
- [Low] dt-bindings: ilitek,ili9806e: incomplete commit message for
panel and vendor
--
commit f808e27a7a6d1d461157c23c896bc2773caf8de9
Author: Frank Obergfell <frank.obergfell@bytesatwork.ch>
> dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E
>
> Add youritech panel as a compatible
>
> Signed-off-by: Frank Obergfell <frank.obergfell@bytesatwork.ch>
[Severity: Low]
This isn't a bug, but the commit message omits any description of the
panel hardware (such as the panel model, resolution, physical dimensions,
and whether it uses MIPI-DSI or SPI) and does not mention the new
youritech vendor prefix added to vendor-prefixes.yaml.
> diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml
> index 2080d9e0ffac4..6f29ddc1fd090 100644
> --- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9806e.yaml
> @@ -19,6 +19,7 @@ properties:
> - densitron,dmt028vghmcmi-1d
> - ortustech,com35h3p70ulc
> - rocktech,rk050hr345-ct106a
> + - youritech,ili9806e
> - const: ilitek,ili9806e
[Severity: Medium]
Should the compatible string use the specific Youritech panel part number
rather than repeating the ili9806e controller IC name?
In this binding, ilitek,ili9806e already identifies the display controller
IC as the fallback compatible, while the first entry identifies the panel
model. Using youritech,ili9806e makes it impossible to distinguish between
different Youritech panels built around the ILI9806E that have different
resolutions, physical dimensions, bus interfaces, or panel-specific
initialization sequences.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261109122250.720757-1-frank.obergfell@bytesatwork.ch?part=1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/5] dt-bindings: arm: fsl: Add byteENGINE i.MX93 platforms
2026-11-09 12:22 ` [PATCH 4/5] dt-bindings: arm: fsl: Add byteENGINE i.MX93 platforms Frank Obergfell
@ 2026-11-09 12:50 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-11-09 12:50 UTC (permalink / raw)
To: Frank Obergfell; +Cc: dri-devel, devicetree, imx, robh, conor+dt, Frank.Li
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Low] dt-bindings: arm: fsl: standalone SoM compatible entry for
byteengine-imx93
--
commit 16c85ae9ce2da615e1c5f80c4ecb02932e8f9200
Author: Frank Obergfell <frank.obergfell@bytesatwork.ch>
dt-bindings: arm: fsl: Add byteENGINE i.MX93 platforms
This commit adds the bytesatwork vendor prefix and documents the
compatible strings for the byteENGINE i.MX93 System on Module and
byteDEVKIT carrier board.
> diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
> index c8290a83205b6..d342930981d2a 100644
> --- a/Documentation/devicetree/bindings/arm/fsl.yaml
> +++ b/Documentation/devicetree/bindings/arm/fsl.yaml
> @@ -1555,6 +1555,18 @@ properties:
> - fsl,imx93-wireless-frdm # i.MX93 and IW610G WLCSP (Wi-Fi + BLE + 802.15.4) SiP FRDM Board
> - const: fsl,imx93
>
> + - description: i.MX93 boards with bytesatwork byteENGINE and bytedevkit
> + items:
> + - enum:
> + - bytesatwork,bytedevkit-imx93
> + - const: bytesatwork,byteengine-imx93
> + - const: fsl,imx93
> +
> + - description: i.MX93 boards with bytesatwork byteENGINE OSM Modules
> + items:
> + - const: bytesatwork,byteengine-imx93
> + - const: fsl,imx93
[Severity: Low]
Should this standalone entry for bytesatwork,byteengine-imx93 be dropped?
The byteENGINE i.MX93 is an OSM System-on-Module (represented by
imx93-byteengine.dtsi) that cannot boot without a carrier board, and its
compatible is already covered by the bytesatwork,bytedevkit-imx93 board
entry above. Having a separate SoM-only entry allows root nodes without
a board compatible to pass schema validation.
Also, the commit message refers to "the byteENGINE carrier board" instead
of the byteDEVKIT carrier board.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261109122250.720757-1-frank.obergfell@bytesatwork.ch?part=4
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 5/5] arm64: dts: freescale: Add support for bytesatwork i.MX93
2026-11-09 12:22 ` [PATCH 5/5] arm64: dts: freescale: Add support for bytesatwork i.MX93 Frank Obergfell
@ 2026-11-09 13:15 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-11-09 13:15 UTC (permalink / raw)
To: Frank Obergfell; +Cc: dri-devel, devicetree, imx, robh, conor+dt, Frank.Li
Thank you for your contribution! Sashiko AI review found 6 potential
issues to consider:
- [High] arm64: dts: freescale: inverted GT911 GPIO polarity in
touchscreen@5d nodes
- [Medium] arm64: dts: freescale: GPIO pinctrl groups assigned to wrong
device nodes
- [Medium] arm64: dts: freescale: missing disable-over-current on
usbotg1 and usbotg2
- [Low] arm64: dts: freescale: invalid ethernet-phy node names and
deprecated property
- [Low] arm64: dts: freescale: underscores in pinctrl node names and
non-generic gpio name
- [Low] arm64: dts: freescale: carrier board duplication between
bytedevkit v1 and v2
--
commit 1273f35fed75113bbeefbcede52975d930b5ccbf
Author: Frank Obergfell <frank.obergfell@bytesatwork.ch>
arm64: dts: freescale: Add support for bytesatwork i.MX93
This commit adds devicetree support for the bytesatwork i.MX93 byteengine
module and the bytedevkit v1.0 and v2.0 carrier boards.
> diff --git a/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts b/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts
> new file mode 100644
> index 0000000000000..9662dd2c38e66
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v1-0.dts
[ ... ]
> + reg_usb_otg1_vbus: regulator-otg {
> + compatible = "regulator-fixed";
> + regulator-name = "USB1_VBUS";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_usb2_vbus: regulator-vbus {
> + compatible = "regulator-fixed";
> + regulator-name = "USB2_VBUS";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + gpio = <&gpio2 18 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + regulator-always-on;
> + };
[Severity: Medium]
Should pinctrl_usb1 and pinctrl_usb2 be assigned to reg_usb_otg1_vbus and
reg_usb2_vbus rather than to &usbotg1 and &usbotg2, with vbus-supply =
<®_usb2_vbus> added to &usbotg2?
On i.MX93, pinctrl-imx does not implement .gpio_request_enable, so a pad is
only muxed when the device node owning its pinctrl-0 property probes.
Because &usbotg1 depends on reg_usb_otg1_vbus and reg_usb2_vbus is marked
regulator-always-on, both regulators request and drive their GPIOs before
&usbotg1 or &usbotg2 probes.
Similarly, panel@0 under &dsi drives reset-gpios (<&gpio2 10>) in
ili9806e_probe() before acquiring its backlight, while that pad is muxed in
pinctrl_mipi_backlight on mipi_bl (in both v1-0 and v2-0), and the interrupt
pad for tca6418e@34 in imx93-byteengine.dtsi is muxed in pinctrl_lpi2c2
instead of on the GPIO expander node.
[ ... ]
> + ethphy_qos: ethernet-phyqos@0 {
> + compatible = "ethernet-phy-ieee802.3-c22";
> + reg = <0>;
> + enet-phy-lane-no-swap;
> + ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
> + ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
> + ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
> + ti,dp83867-rxctrl-strap-quirk;
> + ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
> + };
> + };
> +};
> +
> +&fec {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&pinctrl_fec>;
> + pinctrl-1 = <&pinctrl_fec_sleep>;
> + phy-mode = "rgmii-id";
> + phy-handle = <ðphy_fec>;
> + fsl,magic-packet;
> + status = "okay";
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + clock-frequency = <5000000>;
> +
> + ethphy_fec: ethernet-phyfec@0 {
> + compatible = "ethernet-phy-ieee802.3-c22";
> + reg = <0>;
> + enet-phy-lane-no-swap;
> + ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
> + ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
> + ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
> + ti,dp83867-rxctrl-strap-quirk;
> + ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
> + };
[Severity: Low]
Should ethernet-phyqos@0 and ethernet-phyfec@0 (and ethernet-phyfec@c in
imx93-bytedevkit-v2-0.dts) be named ethernet-phy@0 and ethernet-phy@c?
Documentation/devicetree/bindings/net/ethernet-phy.yaml selects nodes using
^ethernet-phy(@[a-f0-9]+)?$, so these names cause dtbs_check to fail schema
matching for ethernet-phy-ieee802.3-c22.
Also, ti,fifo-depth is deprecated in ti,dp83867.yaml in favor of
tx-fifo-depth.
[ ... ]
> + /* LVDS Touch */
> + touchscreen@5d {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_lvds_touch>;
> + compatible = "goodix,gt911";
> + reg = <0x5d>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
> + irq-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
> + reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
> + touchscreen-inverted-x;
> + touchscreen-inverted-y;
> + };
> +};
> +
> +&lpi2c2 {
> + /* Mipi Touch */
> + touchscreen@5d {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_mipi_touch>;
> + compatible = "goodix,gt911";
> + reg = <0x5d>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
> + irq-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
> + reset-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
> + };
> +};
[Severity: High]
Does marking irq-gpios and reset-gpios as active-low in the touchscreen@5d
nodes (here and in imx93-bytedevkit-v2-0.dts) leave the gt911 held in reset
during probe?
In drivers/input/touchscreen/goodix.c, goodix_reset_no_int_sync() asserts
reset with gpiod_direction_output(ts->gpiod_rst, 0), drives the interrupt
line with gpiod_direction_output(ts->gpiod_int, ts->client->addr == 0x14) to
strap the I2C address, and deasserts reset with
gpiod_direction_output(ts->gpiod_rst, 1). With active-low polarity flags,
gpiolib inverts these logical levels, strapping the controller to address
0x14 instead of 0x5d and driving the physical reset line low when
goodix_i2c_test() runs. Both properties should use active-high flags.
[ ... ]
> +&usbotg2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usb2>;
> + dr_mode = "host";
> + status = "okay";
> +};
> +
> +&usbotg1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usb1>;
> + dr_mode = "otg";
> + vbus-supply = <®_usb_otg1_vbus>;
> + status = "okay";
> +};
[Severity: Medium]
Should &usbotg1 and &usbotg2 specify disable-over-current in both
imx93-bytedevkit-v1-0.dts and imx93-bytedevkit-v2-0.dts?
When disable-over-current is absent, usbmisc_imx7d_init() enables hardware
over-current detection, but the only i.MX93 over-current pads (enet1_td1 and
enet1_td2) are muxed to &eqos in pinctrl_eqos.
[ ... ]
> + pinctrl_lvds_backlight: lvds_backlight-grp {
> + fsl,pins = <
> + MX93_PAD_GPIO_IO26__GPIO2_IO26 0x31e /* LVDS Backlight */
> + >;
> + };
> +
> + pinctrl_lvds_touch: lvds_touch-grp {
> + fsl,pins = <
> + MX93_PAD_GPIO_IO20__GPIO2_IO20 0x31e /* LVDS Touch INT */
> + MX93_PAD_GPIO_IO21__GPIO2_IO21 0x31e /* LVDS Touch RST */
> + >;
> + };
> +
> + pinctrl_mipi_touch: mipi_touch-grp {
> + fsl,pins = <
> + MX93_PAD_GPIO_IO21__GPIO2_IO21 0x31e /* MIPI Touch INT */
> + MX93_PAD_GPIO_IO20__GPIO2_IO20 0x31e /* MIPI Touch RST */
> + >;
> + };
> +
> + pinctrl_mipi_backlight: mipi_bl-grp {
[Severity: Low]
These pinctrl node names (and those in imx93-bytedevkit-v2-0.dts) contain
underscores, which triggers dtc node_name_chars_strict warnings when
building with W=1; hyphens should be used instead. Also, tca6418e@34 in
imx93-byteengine.dtsi should use the generic node name gpio@34.
[ ... ]
> diff --git a/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts b/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts
> new file mode 100644
> index 0000000000000..52b38edfe5b62
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx93-bytedevkit-v2-0.dts
> @@ -0,0 +1,439 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2026 bytesatwork AG
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/net/ti-dp83867.h>
> +#include "imx93-byteengine.dtsi"
[Severity: Low]
This isn't a bug, but imx93-bytedevkit-v2-0.dts duplicates over 400 lines of
imx93-bytedevkit-v1-0.dts verbatim, differing only in the model string, the
&fec PHY address, and the &usbotg1 configuration. Could the shared carrier
board description be factored into a common .dtsi (or included from one
board .dts into the other) so only the differences are specified?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261109122250.720757-1-frank.obergfell@bytesatwork.ch?part=5
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-11-09 13:15 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-09 12:22 [PATCH 0/5] arm64: dts: freescale: Add support for bytesatwork byteDEVKIT i.MX93 Frank Obergfell
2026-11-09 12:22 ` [PATCH 1/5] dt-bindings: display: panel: ilitek,ili9806e: Add Youritech ILI9806E Frank Obergfell
2026-11-09 12:32 ` sashiko-bot
2026-11-09 12:22 ` [PATCH 2/5] drm/panel: ilitek-ili9806e: Add support for Youritech ILI9806E panel Frank Obergfell
2026-11-09 12:22 ` [PATCH 3/5] arm64: dts: freescale: imx93: Add MIPI DSI controller node Frank Obergfell
2026-11-09 12:22 ` [PATCH 4/5] dt-bindings: arm: fsl: Add byteENGINE i.MX93 platforms Frank Obergfell
2026-11-09 12:50 ` sashiko-bot
2026-11-09 12:22 ` [PATCH 5/5] arm64: dts: freescale: Add support for bytesatwork i.MX93 Frank Obergfell
2026-11-09 13:15 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox