]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
riscv: dts: spacemit: k3: Initial support for CoM260-IFX board
authorYixun Lan <dlan@kernel.org>
Wed, 20 May 2026 23:45:28 +0000 (23:45 +0000)
committerYixun Lan <dlan@kernel.org>
Fri, 29 May 2026 06:14:50 +0000 (06:14 +0000)
The K3 CoM260-IFX board combine with one 260 pins "Gold Finger" computer
module with a carrier board. The module integrates the K3 SoC, LPDDR5,
UFS storage, Gigabit Ethernet, Micro SD card, PMIC Chip. The board offers
a comprehensive array of interfaces, including MIPI-DSI, MIPI-CSI,
DisplayPort, SDIO, SPI, I2S, I2C, CAN-FD, PWM, UART, USB, PCIe, and GMAC.

Add initial support for enabling Serial UART and ethernet.

Link: https://patch.msgid.link/20260520-02-k3-com260-ifx-v2-2-d55095457cf0@kernel.org
Signed-off-by: Yixun Lan <dlan@kernel.org>
arch/riscv/boot/dts/spacemit/Makefile
arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts [new file with mode: 0644]
arch/riscv/boot/dts/spacemit/k3-com260.dtsi [new file with mode: 0644]
arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi

index acb993c452ba22af015af3afd4a997f327b63a87..28ec9e1e0a625cec0e9d09452f0a964634bb2ff6 100644 (file)
@@ -4,5 +4,6 @@ dtb-$(CONFIG_ARCH_SPACEMIT) += k1-milkv-jupiter.dtb
 dtb-$(CONFIG_ARCH_SPACEMIT) += k1-musepi-pro.dtb
 dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-r2s.dtb
 dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
+dtb-$(CONFIG_ARCH_SPACEMIT) += k3-com260-ifx.dtb
 dtb-$(CONFIG_ARCH_SPACEMIT) += k3-deepcomputing-fml13v05.dtb
 dtb-$(CONFIG_ARCH_SPACEMIT) += k3-pico-itx.dtb
diff --git a/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts b/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
new file mode 100644 (file)
index 0000000..238bb03
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2026 SpacemiT (Hangzhou) Technology Co. Ltd
+ * Copyright (c) 2026 Yixun Lan <dlan@kernel.org>
+ */
+
+#include "k3-com260.dtsi"
+
+/ {
+       model = "SpacemiT K3 CoM260 IFX";
+       compatible = "spacemit,k3-com260-ifx", "spacemit,k3-com260", "spacemit,k3";
+
+       aliases {
+               serial0 = &uart0;
+               ethernet0 = &eth1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
diff --git a/arch/riscv/boot/dts/spacemit/k3-com260.dtsi b/arch/riscv/boot/dts/spacemit/k3-com260.dtsi
new file mode 100644 (file)
index 0000000..a38d7b7
--- /dev/null
@@ -0,0 +1,190 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2026 SpacemiT (Hangzhou) Technology Co. Ltd
+ * Copyright (c) 2026 Yixun Lan <dlan@kernel.org>
+ */
+#include <dt-bindings/gpio/gpio.h>
+
+#include "k3.dtsi"
+#include "k3-pinctrl.dtsi"
+
+/ {
+       model = "SpacemiT K3 CoM260 Module";
+       compatible = "spacemit,k3-com260", "spacemit,k3";
+
+       memory@100000000 {
+               device_type = "memory";
+               reg = <0x1 0x00000000 0x4 0x00000000>;
+       };
+
+       reg_5v_sys: regulator-5v-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "P5V0_SYS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+};
+
+&i2c8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c8_cfg>;
+       status = "okay";
+
+       pmic@41 {
+               compatible = "spacemit,p1";
+               reg = <0x41>;
+               interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
+               vin1-supply = <&reg_5v_sys>;
+               vin2-supply = <&reg_5v_sys>;
+               vin3-supply = <&reg_5v_sys>;
+               vin4-supply = <&reg_5v_sys>;
+               vin5-supply = <&reg_5v_sys>;
+               vin6-supply = <&reg_5v_sys>;
+               aldoin-supply = <&reg_5v_sys>;
+               dldoin1-supply = <&buck4>;
+               dldoin2-supply = <&buck4>;
+
+               regulators {
+                       buck1: buck1 {
+                               regulator-min-microvolt = <1050000>;
+                               regulator-max-microvolt = <1050000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck2: buck2 {
+                               regulator-min-microvolt = <1050000>;
+                               regulator-max-microvolt = <1050000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck3: buck3 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck4: buck4 {
+                               regulator-min-microvolt = <2100000>;
+                               regulator-max-microvolt = <2100000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck5: buck5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck6: buck6 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <500000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       aldo1: aldo1 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       aldo2: aldo2 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       aldo3: aldo3 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       aldo4: aldo4 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       dldo1: dldo1 {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       dldo2: dldo2 {
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       dldo3: dldo3 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       dldo4: dldo4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                       };
+
+                       dldo5: dldo5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       dldo6: dldo6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       dldo7: dldo7 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
+};
+
+&eth1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1_rgmii_0_cfg>, <&gmac1_phy_0_cfg>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&phy1>;
+       status = "okay";
+
+       mdio {
+               phy1: phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       reset-gpios = <&gpio 1 5 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <10000>;
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_0_cfg>;
+       status = "okay";
+};
index 252c64af76fe1922154a9ce73956c9a24666a3d1..3ee1471f37985f3a89e3b3de60e3370d32c0decd 100644 (file)
                };
        };
 
+       gmac1_rgmii_0_cfg: gmac1-rgmii-0-cfg {
+               gmac1-rgmii-0-pins {
+                       pinmux = <K3_PADCONF(21, 1)>,   /* gmac1_rxdv  */
+                                <K3_PADCONF(22, 1)>,   /* gmac1 rx d0 */
+                                <K3_PADCONF(23, 1)>,   /* gmac1 rx d1 */
+                                <K3_PADCONF(24, 1)>,   /* gmac1 rx_clk */
+                                <K3_PADCONF(25, 1)>,   /* gmac1 rx d2 */
+                                <K3_PADCONF(26, 1)>,   /* gmac1 rx d3 */
+                                <K3_PADCONF(27, 1)>,   /* gmac1 tx d0 */
+                                <K3_PADCONF(28, 1)>,   /* gmac1 tx d1 */
+                                <K3_PADCONF(29, 1)>,   /* gmac1 tx clk */
+                                <K3_PADCONF(30, 1)>,   /* gmac1 tx d2 */
+                                <K3_PADCONF(31, 1)>,   /* gmac1 tx d3 */
+                                <K3_PADCONF(32, 1)>,   /* gmac1 tx_en */
+                                <K3_PADCONF(33, 1)>,   /* gmac1 mdc */
+                                <K3_PADCONF(34, 1)>;   /* gmac1 mdio */
+
+                       bias-disable;
+                       drive-strength = <25>;
+                       power-source = <1800>;
+               };
+       };
+
+       gmac1_phy_0_cfg: gmac1-phy-0-cfg {
+               gmac1-phy-0-pins {
+                       pinmux = <K3_PADCONF(35, 1)>;   /* gmac1 int */
+
+                       bias-disable;
+                       drive-strength = <25>;
+                       power-source = <1800>;
+               };
+       };
+
        /omit-if-no-ref/
        i2c8_cfg: i2c8-cfg {
                i2c8-pins {