dts: riscv: spacemit: k3: Add i2c nodes

Populate all I2C devicetree nodes for SpacemiT K3 SoC. The controller of
i2c3 is reserved for secure domain, and not available from Linux. The
controller of i2c7 simply doesn't exist from hardware perspective, as
vendor directly name the i2c controller used for PMIC as i2c8.

Reviewed-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
Link: https://lore.kernel.org/r/20260327-02-k3-i2c-v2-1-2119c0918868@kernel.org
Signed-off-by: Yixun Lan <dlan@kernel.org>
master
Yixun Lan 2026-03-27 11:40:40 +00:00
parent 2b8bd26bbf
commit cb322cbffb
1 changed files with 100 additions and 0 deletions

View File

@ -555,6 +555,76 @@
};
};
i2c0: i2c@d4010800 {
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
reg = <0x0 0xd4010800 0x0 0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&syscon_apbc CLK_APBC_TWSI0>,
<&syscon_apbc CLK_APBC_TWSI0_BUS>;
clock-names = "func", "bus";
clock-frequency = <400000>;
resets = <&syscon_apbc RESET_APBC_TWSI0>;
status = "disabled";
};
i2c1: i2c@d4011000 {
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
reg = <0x0 0xd4011000 0x0 0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <37 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&syscon_apbc CLK_APBC_TWSI1>,
<&syscon_apbc CLK_APBC_TWSI1_BUS>;
clock-names = "func", "bus";
clock-frequency = <400000>;
resets = <&syscon_apbc RESET_APBC_TWSI1>;
status = "disabled";
};
i2c2: i2c@d4012000 {
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
reg = <0x0 0xd4012000 0x0 0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&syscon_apbc CLK_APBC_TWSI2>,
<&syscon_apbc CLK_APBC_TWSI2_BUS>;
clock-names = "func", "bus";
clock-frequency = <400000>;
resets = <&syscon_apbc RESET_APBC_TWSI2>;
status = "disabled";
};
i2c4: i2c@d4012800 {
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
reg = <0x0 0xd4012800 0x0 0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <40 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&syscon_apbc CLK_APBC_TWSI4>,
<&syscon_apbc CLK_APBC_TWSI4_BUS>;
clock-names = "func", "bus";
clock-frequency = <400000>;
resets = <&syscon_apbc RESET_APBC_TWSI4>;
status = "disabled";
};
i2c5: i2c@d4013800 {
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
reg = <0x0 0xd4013800 0x0 0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <41 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&syscon_apbc CLK_APBC_TWSI5>,
<&syscon_apbc CLK_APBC_TWSI5_BUS>;
clock-names = "func", "bus";
clock-frequency = <400000>;
resets = <&syscon_apbc RESET_APBC_TWSI5>;
status = "disabled";
};
syscon_apbc: system-controller@d4015000 {
compatible = "spacemit,k3-syscon-apbc";
reg = <0x0 0xd4015000 0x0 0x1000>;
@ -681,6 +751,20 @@
status = "disabled";
};
i2c6: i2c@d4018800 {
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
reg = <0x0 0xd4018800 0x0 0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <70 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&syscon_apbc CLK_APBC_TWSI6>,
<&syscon_apbc CLK_APBC_TWSI6_BUS>;
clock-names = "func", "bus";
clock-frequency = <400000>;
resets = <&syscon_apbc RESET_APBC_TWSI6>;
status = "disabled";
};
gpio: gpio@d4019000 {
compatible = "spacemit,k3-gpio";
reg = <0x0 0xd4019000 0x0 0x100>;
@ -699,6 +783,20 @@
<&pinctrl 3 0 96 32>;
};
i2c8: i2c@d401d800 {
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
reg = <0x0 0xd401d800 0x0 0x38>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&syscon_apbc CLK_APBC_TWSI8>,
<&syscon_apbc CLK_APBC_TWSI8_BUS>;
clock-names = "func", "bus";
clock-frequency = <400000>;
resets = <&syscon_apbc RESET_APBC_TWSI8>;
status = "disabled";
};
pinctrl: pinctrl@d401e000 {
compatible = "spacemit,k3-pinctrl";
reg = <0x0 0xd401e000 0x0 0x1000>;
@ -794,6 +892,8 @@
<&cpu7_intc 3>, <&cpu7_intc 7>;
};
/* sec_i2c3: 0xf0614000, not available from Linux */
mimsic: interrupt-controller@f1000000 {
compatible = "spacemit,k3-imsics", "riscv,imsics";
reg = <0x0 0xf1000000 0x0 0x10000>;