Skip to content

Commit cb322cb

Browse files
author
Yixun Lan
committed
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>
1 parent 2b8bd26 commit cb322cb

1 file changed

Lines changed: 100 additions & 0 deletions

File tree

  • arch/riscv/boot/dts/spacemit

arch/riscv/boot/dts/spacemit/k3.dtsi

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,76 @@
555555
};
556556
};
557557

558+
i2c0: i2c@d4010800 {
559+
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
560+
reg = <0x0 0xd4010800 0x0 0x38>;
561+
#address-cells = <1>;
562+
#size-cells = <0>;
563+
interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
564+
clocks = <&syscon_apbc CLK_APBC_TWSI0>,
565+
<&syscon_apbc CLK_APBC_TWSI0_BUS>;
566+
clock-names = "func", "bus";
567+
clock-frequency = <400000>;
568+
resets = <&syscon_apbc RESET_APBC_TWSI0>;
569+
status = "disabled";
570+
};
571+
572+
i2c1: i2c@d4011000 {
573+
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
574+
reg = <0x0 0xd4011000 0x0 0x38>;
575+
#address-cells = <1>;
576+
#size-cells = <0>;
577+
interrupts = <37 IRQ_TYPE_LEVEL_HIGH>;
578+
clocks = <&syscon_apbc CLK_APBC_TWSI1>,
579+
<&syscon_apbc CLK_APBC_TWSI1_BUS>;
580+
clock-names = "func", "bus";
581+
clock-frequency = <400000>;
582+
resets = <&syscon_apbc RESET_APBC_TWSI1>;
583+
status = "disabled";
584+
};
585+
586+
i2c2: i2c@d4012000 {
587+
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
588+
reg = <0x0 0xd4012000 0x0 0x38>;
589+
#address-cells = <1>;
590+
#size-cells = <0>;
591+
interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
592+
clocks = <&syscon_apbc CLK_APBC_TWSI2>,
593+
<&syscon_apbc CLK_APBC_TWSI2_BUS>;
594+
clock-names = "func", "bus";
595+
clock-frequency = <400000>;
596+
resets = <&syscon_apbc RESET_APBC_TWSI2>;
597+
status = "disabled";
598+
};
599+
600+
i2c4: i2c@d4012800 {
601+
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
602+
reg = <0x0 0xd4012800 0x0 0x38>;
603+
#address-cells = <1>;
604+
#size-cells = <0>;
605+
interrupts = <40 IRQ_TYPE_LEVEL_HIGH>;
606+
clocks = <&syscon_apbc CLK_APBC_TWSI4>,
607+
<&syscon_apbc CLK_APBC_TWSI4_BUS>;
608+
clock-names = "func", "bus";
609+
clock-frequency = <400000>;
610+
resets = <&syscon_apbc RESET_APBC_TWSI4>;
611+
status = "disabled";
612+
};
613+
614+
i2c5: i2c@d4013800 {
615+
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
616+
reg = <0x0 0xd4013800 0x0 0x38>;
617+
#address-cells = <1>;
618+
#size-cells = <0>;
619+
interrupts = <41 IRQ_TYPE_LEVEL_HIGH>;
620+
clocks = <&syscon_apbc CLK_APBC_TWSI5>,
621+
<&syscon_apbc CLK_APBC_TWSI5_BUS>;
622+
clock-names = "func", "bus";
623+
clock-frequency = <400000>;
624+
resets = <&syscon_apbc RESET_APBC_TWSI5>;
625+
status = "disabled";
626+
};
627+
558628
syscon_apbc: system-controller@d4015000 {
559629
compatible = "spacemit,k3-syscon-apbc";
560630
reg = <0x0 0xd4015000 0x0 0x1000>;
@@ -681,6 +751,20 @@
681751
status = "disabled";
682752
};
683753

754+
i2c6: i2c@d4018800 {
755+
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
756+
reg = <0x0 0xd4018800 0x0 0x38>;
757+
#address-cells = <1>;
758+
#size-cells = <0>;
759+
interrupts = <70 IRQ_TYPE_LEVEL_HIGH>;
760+
clocks = <&syscon_apbc CLK_APBC_TWSI6>,
761+
<&syscon_apbc CLK_APBC_TWSI6_BUS>;
762+
clock-names = "func", "bus";
763+
clock-frequency = <400000>;
764+
resets = <&syscon_apbc RESET_APBC_TWSI6>;
765+
status = "disabled";
766+
};
767+
684768
gpio: gpio@d4019000 {
685769
compatible = "spacemit,k3-gpio";
686770
reg = <0x0 0xd4019000 0x0 0x100>;
@@ -699,6 +783,20 @@
699783
<&pinctrl 3 0 96 32>;
700784
};
701785

786+
i2c8: i2c@d401d800 {
787+
compatible = "spacemit,k3-i2c", "spacemit,k1-i2c";
788+
reg = <0x0 0xd401d800 0x0 0x38>;
789+
#address-cells = <1>;
790+
#size-cells = <0>;
791+
interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
792+
clocks = <&syscon_apbc CLK_APBC_TWSI8>,
793+
<&syscon_apbc CLK_APBC_TWSI8_BUS>;
794+
clock-names = "func", "bus";
795+
clock-frequency = <400000>;
796+
resets = <&syscon_apbc RESET_APBC_TWSI8>;
797+
status = "disabled";
798+
};
799+
702800
pinctrl: pinctrl@d401e000 {
703801
compatible = "spacemit,k3-pinctrl";
704802
reg = <0x0 0xd401e000 0x0 0x1000>;
@@ -794,6 +892,8 @@
794892
<&cpu7_intc 3>, <&cpu7_intc 7>;
795893
};
796894

895+
/* sec_i2c3: 0xf0614000, not available from Linux */
896+
797897
mimsic: interrupt-controller@f1000000 {
798898
compatible = "spacemit,k3-imsics", "riscv,imsics";
799899
reg = <0x0 0xf1000000 0x0 0x10000>;

0 commit comments

Comments
 (0)