[d-kernel] [PATCH] arm64: dts: rockchip: Add NMS-SM-EVM v1 Board support
Daniil Gnusarev
gnusarevda на basealt.ru
Чт Ноя 6 17:01:27 MSK 2025
The NMS-SM-EVM motherboard is designed to route the NMS-SM-RK3568
module's interface signals to external standard connectors.
It includes the following peripherals:
1 x USB 3.0 OTG
2 x USB 2.0 HOST
2 x GbE LAN
1 x PCI-e 2.0 (+ USB 2.0 HOST + I2C_MPCI)
1 x PCI-e 3.0
1 x Serial port (RS-232)
1 x Debug console (UART → USB)
1 x HDMI
2 x MIPI DSI (+ 2 x I2C_DSI)
1 x MIPI CSI
1 x I2S
1 x DP
2 x CAN
1 x SATA
3 x I2C
2 x SPI
1 x PWM
GPIO pins
Link: https://github.com/inmys/buildroot-external-inmys/tree/nms-sm-rk3568-6.12/dts
Signed-off-by: Daniil Gnusarev <gnusarevda на basealt.ru>
---
arch/arm64/boot/dts/rockchip/Makefile | 1 +
.../dts/rockchip/rk3568-inmys-smarc-evm.dts | 357 ++++++++++++++++++
2 files changed, 358 insertions(+)
create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-inmys-smarc-evm.dts
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index 3906bfde7970b4..40241c47f68a9d 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -111,6 +111,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-fastrhino-r66s.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-fastrhino-r68s.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-inmys-smarc-evm.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-lubancat-2.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-mecsbc.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5c.dtb
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-inmys-smarc-evm.dts b/arch/arm64/boot/dts/rockchip/rk3568-inmys-smarc-evm.dts
new file mode 100644
index 00000000000000..6a42410befec3e
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3568-inmys-smarc-evm.dts
@@ -0,0 +1,357 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3568-inmys-smarc-som_v2.dtsi"
+
+/ {
+ model = "NMS-SM-EVM with NMS-SM-RK3568";
+ compatible = "inmys,rk3568-smarc-evm", "inmys,rk3568-smarc-som", "rockchip,rk3568";
+
+ vcc12v_dcin: vcc12v-dcin {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc12v_dcin";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ };
+
+ vcc5v0_mb: vcc5v0-mb {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_mb";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc12v_dcin>;
+ };
+
+ vcc3v3_mb: vcc3v3-mb {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc3v3_mb";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&vcc12v_dcin>;
+ };
+};
+
+&smarc_vdd_in{
+ /* 5V to SOM */
+ vin-supply = <&vcc5v0_mb>;
+};
+
+&gmac0 {
+ status = "okay";
+};
+
+&gmac1 {
+ status = "okay";
+};
+
+
+/* HDMI output */
+/{
+ hdmi-con {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con_in: endpoint {
+ remote-endpoint = <&hdmi_out_con>;
+ };
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+};
+
+&hdmi {
+ status = "okay";
+};
+
+&hdmi_in {
+ hdmi_in_vp0: endpoint {
+ remote-endpoint = <&vp0_out_hdmi>;
+ };
+};
+
+&hdmi_out {
+ hdmi_out_con: endpoint {
+ remote-endpoint = <&hdmi_con_in>;
+ };
+};
+
+&vop {
+ status = "okay";
+};
+
+&vop_mmu {
+ status = "okay";
+};
+
+&vp0 {
+ vp0_out_hdmi: endpoint на ROCKCHIP_VOP2_EP_HDMI0 {
+ reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+ remote-endpoint = <&hdmi_in_vp0>;
+ };
+};
+
+&hdmi_sound {
+ status = "okay";
+};
+
+&i2s0_8ch {
+ status = "okay";
+};
+
+/* end HDMI */
+
+
+/* mini PCIE connector */
+&combphy2 {
+ status = "okay";
+};
+
+&pcie2x1 {
+ status = "okay";
+};
+/* end mini PCIE connector */
+
+/* PCIE X4 connector */
+&pcie30phy {
+ status = "okay";
+};
+
+&pcie3x2 {
+ status = "okay";
+};
+/* end PCIE X4 connector */
+
+
+&sdmmc0 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart4 {
+ status = "okay";
+};
+
+&uart5 {
+ status = "okay";
+};
+
+&uart8 {
+ status = "okay";
+};
+
+
+/* USB start */
+&usb2phy0 {
+ status = "okay";
+};
+
+&usb2phy0_host {
+ /*phy-supply = <&vcc5v0_usb_host>;*/
+ status = "okay";
+};
+
+&usb2phy0_otg {
+ /*phy-supply = <&vcc5v0_usb_otg>;*/
+ status = "okay";
+};
+
+&usb_host0_ehci {
+ status = "okay";
+};
+
+&usb_host0_ohci {
+ status = "okay";
+};
+
+&usb_host0_xhci {
+ extcon = <&usb2phy0>;
+ status = "okay";
+};
+&combphy0 { /* USB3_OTG SS */
+ status = "okay";
+};
+
+
+&usb2phy1 {
+ status = "okay";
+};
+
+&usb2phy1_host {
+ /*phy-supply = <&vcc5v0_usb_host>;*/
+ status = "okay";
+};
+
+&usb2phy1_otg {
+ /*phy-supply = <&vcc5v0_usb_host>;*/
+ status = "okay";
+};
+
+&usb_host1_ehci {
+ status = "okay";
+};
+
+&usb_host1_ohci {
+ status = "okay";
+};
+
+&usb_host1_xhci {
+ status = "okay";
+};
+/* end USB*/
+
+
+/* SATA to m.2 connector */
+&combphy1 {
+ status = "okay";
+};
+
+&sata1 {
+ status = "okay";
+};
+/* end SATA to m.2 connector */
+
+
+/* SMARC: I2C_GP */
+&i2c3{
+ status = "okay";
+ i2cgpio: pca9535 на 20 {
+ compatible = "nxp,pca9535";
+ /* vcc-supply = <®ulator_i2c_1v8 */
+ reg = <0x20>;
+ /*GPIO.3 -> P111 (som) -> gpio3_d2*/
+ interrupt-parent = <&gpio3>;
+ interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names =
+ "DSI0_TP_RST_N","DSI1_TP_RST_N","DSI0_RST_N","DSI1_RST_N",
+ "CAM0_PWDN","I2C_GPIO05","I2C_GPIO06","I2C_GPIO07",
+ "I2C_GPIO10","I2C_GPIO11","I2C_GPIO12","I2C_GPIO13",
+ "I2C_GPIO14","I2C_GPIO15","I2C_GPIO16","I2C_GPIO17";
+ cam_pwd {
+ gpio-hog;
+ gpios = <4 GPIO_ACTIVE_HIGH>;
+ output-high;
+ };
+ };
+ /* one of: 0x2c or 0x2e on board*/
+ /* fan control*/
+ u19a: adt7473 на 2e {
+ compatible = "adi,adt7473";
+ reg = <0x2e>;
+ adi,bypass-attenuator-in0 = <1>;
+ adi,bypass-attenuator-in1 = <1>;
+ adi,bypass-attenuator-in2 = <1>;
+ adi,bypass-attenuator-in3 = <1>;
+ adi,pwm-active-state = <1 1 1>;
+ };
+
+ i2cmux: pca9546a на 70 {
+ compatible = "nxp,pca9546";
+ reg = <0x70>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ vcc-supply = <&V3P3>;
+ vcc-pullup-supply = <&V3P3>;
+
+ /*I2C_MUX_RST->GPIO.0 -> P108 (som) -> gpio3_d5*/
+ reset-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
+
+ i2c на 0 { /*I2C_DSI1 -> to X25*/
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ i2c на 1 { /*I2C_DSI0 -> to X24*/
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ i2c на 2 { /*I2C_GP_A -> to X32*/
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ i2c на 3 { /*I2C_MPCI -> to minipcie connector*/
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ };
+};
+
+/*SMARC: I2C_CAM0*/
+&i2c4{
+ status = "okay";
+#if 0
+ camera0: imx219 на 10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+ clocks = <&ext_cam_clk>;
+ status = "okay";
+ rockchip,camera-module-index = <0>;
+ rockchip,camera-module-facing = "back";
+ rockchip,camera-module-name = "NC";
+ rockchip,camera-module-lens-name = "NC";
+ port {
+ ucam_out0: endpoint {
+ remote-endpoint = <&mipi_in_ucam0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+#endif
+};
+
+
+&spi0 {
+ status = "okay";
+ spidev на 0{
+ compatible = "rohm,dh2228fv"; //linux,spidev
+ reg = <0>;
+ };
+};
+
+
+&can0 { /* SMARC CAN0 -> CAN A */
+ status = "okay";
+};
+
+&can2 { /* SMARC CAN1 -> CAN B */
+ status = "okay";
+};
+
+&sata_usb3_mux_hog {
+ output-low; /* SMARC SATA1 */
+ /*output-high;*/ /* SMARC USB3_HOST1_SS */
+
+ /* selected SMARC SATA1 -> go to m.2 connector*/
+};
+
+&can_i2c2_mux_hog {
+ output-low; /* CAN */
+ /* output-high; */ /* i2c */
+
+ /* selected CAN -> CAN interface on pins S139/S140 */
+};
--
2.42.2
Подробная информация о списке рассылки devel-kernel