This adds support for the Kontron i.MX8MP OSM-S size system-on-module +
eval board.
CPU: NXP i.MX8MP @ 1600MHz (quad-core A53)
Memory: 4 (up to 8) GByte LPDDR4-RAM
Storage: 32 (up to 128) GByte eMMC + microSD slot
Ethernet: 2x 1 Gbit/s IEEE (1x with TSN)
UART: 1x UART console output on the Mini-B USB Debug Port
(signals are really UART on this Mini-B USB port!!!, there is
an adapter with ftdi available from Kontron)
1x RS232, 1x RS485
USB: 2x USB 2.0 Type-A, 1x USB 3.0 Type-C DRP
Misc: 8 (up to 128) kByte EEPROM (at24), RTC, 2x CAN, HDMI, 1x PCIe
This will create an SD card image for the board.
To use this image you have to bring the board to the recovery boot mode
(normal boot mode is eMMC). At the time of writing, the SoM (or the SoC)
has a bug that the FORCE_RECOVERY signal (switch S1 on the eval board)
doesn't work as long as the eMMC boot0 partition contains data.
Therefore you have to wipe this boot0 partition to be able to boot from
SD card. To do this call the following commands at uboot:
mmc dev 0 1
mmc erase 0 0x2000
After that, the system will try to boot from SD card.
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
72 lines
1.9 KiB
Diff
72 lines
1.9 KiB
Diff
From 6504297872c7a5d0d06247970d32940eba26b8b3 Mon Sep 17 00:00:00 2001
|
|
From: Frieder Schrempf <frieder.schrempf@kontron.de>
|
|
Date: Mon, 20 Oct 2025 15:21:51 +0200
|
|
Subject: arm64: dts: imx8mp-kontron: Fix USB OTG role switching
|
|
|
|
The VBUS supply regulator is currently assigned to the PHY node.
|
|
This causes the VBUS to be always on, even when the controller
|
|
needs to be switched to peripheral mode.
|
|
|
|
Fix the OTG role switching by adding a connector node and moving
|
|
the VBUS supply regulator to that node. This way the VBUS gets
|
|
correctly switched according to the current role.
|
|
|
|
Fixes: 946ab10e3f40 ("arm64: dts: Add support for Kontron OSM-S i.MX8MP SoM and BL carrier board")
|
|
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
|
|
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
|
|
---
|
|
.../boot/dts/freescale/imx8mp-kontron-bl-osm-s.dts | 24 +++++++++++++++++-----
|
|
1 file changed, 19 insertions(+), 5 deletions(-)
|
|
|
|
--- a/arch/arm64/boot/dts/freescale/imx8mp-kontron-bl-osm-s.dts
|
|
+++ b/arch/arm64/boot/dts/freescale/imx8mp-kontron-bl-osm-s.dts
|
|
@@ -16,11 +16,20 @@
|
|
ethernet1 = &eqos;
|
|
};
|
|
|
|
- extcon_usbc: usbc {
|
|
- compatible = "linux,extcon-usb-gpio";
|
|
+ connector {
|
|
+ compatible = "gpio-usb-b-connector", "usb-b-connector";
|
|
+ id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
|
+ label = "Type-C";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_usb1_id>;
|
|
- id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
|
+ type = "micro";
|
|
+ vbus-supply = <®_usb1_vbus>;
|
|
+
|
|
+ port {
|
|
+ usb_dr_connector: endpoint {
|
|
+ remote-endpoint = <&usb3_dwc>;
|
|
+ };
|
|
+ };
|
|
};
|
|
|
|
leds {
|
|
@@ -244,9 +253,15 @@
|
|
hnp-disable;
|
|
srp-disable;
|
|
dr_mode = "otg";
|
|
- extcon = <&extcon_usbc>;
|
|
usb-role-switch;
|
|
+ role-switch-default-mode = "peripheral";
|
|
status = "okay";
|
|
+
|
|
+ port {
|
|
+ usb3_dwc: endpoint {
|
|
+ remote-endpoint = <&usb_dr_connector>;
|
|
+ };
|
|
+ };
|
|
};
|
|
|
|
&usb_dwc3_1 {
|
|
@@ -273,7 +288,6 @@
|
|
};
|
|
|
|
&usb3_phy0 {
|
|
- vbus-supply = <®_usb1_vbus>;
|
|
status = "okay";
|
|
};
|
|
|