Skip to content

Commit 76efd33

Browse files
Chenhongrenkartben
authored andcommitted
drivers: i3c: add it51xxx i3cs driver
Add it51xxx i3c target driver. Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
1 parent ce8af54 commit 76efd33

File tree

6 files changed

+1062
-0
lines changed

6 files changed

+1062
-0
lines changed

drivers/i3c/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ zephyr_library_sources_ifdef(
5656
i3c_dw.c
5757
)
5858

59+
zephyr_library_sources_ifdef(
60+
CONFIG_I3CS_IT51XXX
61+
i3cs_it51xxx.c
62+
)
63+
5964
zephyr_library_sources_ifdef(
6065
CONFIG_I3C_TEST
6166
i3c_test.c

drivers/i3c/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,5 +213,6 @@ rsource "Kconfig.npcx"
213213
rsource "Kconfig.dw"
214214
rsource "Kconfig.test"
215215
rsource "Kconfig.stm32"
216+
rsource "Kconfig.it51xxx"
216217

217218
endif # I3C

drivers/i3c/Kconfig.it51xxx

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Copyright (c) 2025 ITE Corporation.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
module = I3C_IT51XXX
5+
module-str = i3c-it51xxx
6+
source "subsys/logging/Kconfig.template.log_config"
7+
8+
config I3CS_IT51XXX
9+
bool "it51xxx i3cs driver"
10+
depends on DT_HAS_ITE_IT51XXX_I3CS_ENABLED
11+
select PINCTRL
12+
select I3C_TARGET_BUFFER_MODE
13+
select SOC_IT51XXX_CPU_IDLE_GATING
14+
default y
15+
help
16+
Enable it51xxx i3c target driver.
17+
18+
if I3CS_IT51XXX
19+
20+
config I3CS_IT51XXX_IBI_TIMEOUT_MS
21+
int "Set the IBI timeout in milliseconds"
22+
default 1000
23+
24+
choice
25+
bool "choose i3cs tx fifo size"
26+
default I3CS_TX_FIFO_16_BYTE
27+
28+
config I3CS_TX_FIFO_16_BYTE
29+
bool "16"
30+
31+
config I3CS_TX_FIFO_32_BYTE
32+
bool "32"
33+
34+
config I3CS_TX_FIFO_64_BYTE
35+
bool "64"
36+
37+
config I3CS_TX_FIFO_128_BYTE
38+
bool "128"
39+
40+
config I3CS_TX_FIFO_4096_BYTE
41+
bool "4096"
42+
endchoice
43+
44+
config I3CS_IT51XXX_TX_FIFO_SIZE
45+
int "it51xxx i3cs tx fifo size"
46+
default 16 if I3CS_TX_FIFO_16_BYTE
47+
default 32 if I3CS_TX_FIFO_32_BYTE
48+
default 64 if I3CS_TX_FIFO_64_BYTE
49+
default 128 if I3CS_TX_FIFO_128_BYTE
50+
default 4096 if I3CS_TX_FIFO_4096_BYTE
51+
default 16
52+
help
53+
Set i3cs tx fifo size size.
54+
55+
choice
56+
bool "choose i3cs rx fifo size"
57+
default I3CS_RX_FIFO_16_BYTE
58+
59+
config I3CS_RX_FIFO_16_BYTE
60+
bool "16"
61+
62+
config I3CS_RX_FIFO_32_BYTE
63+
bool "32"
64+
65+
config I3CS_RX_FIFO_64_BYTE
66+
bool "64"
67+
68+
config I3CS_RX_FIFO_128_BYTE
69+
bool "128"
70+
71+
config I3CS_RX_FIFO_4096_BYTE
72+
bool "4096"
73+
endchoice
74+
75+
config I3CS_IT51XXX_RX_FIFO_SIZE
76+
int "it51xxx i3cs rx fifo size"
77+
default 16 if I3CS_RX_FIFO_16_BYTE
78+
default 32 if I3CS_RX_FIFO_32_BYTE
79+
default 64 if I3CS_RX_FIFO_64_BYTE
80+
default 128 if I3CS_RX_FIFO_128_BYTE
81+
default 4096 if I3CS_RX_FIFO_4096_BYTE
82+
default 16
83+
help
84+
Set i3cs rx fifo size size.
85+
86+
endif # I3CS_IT51XXX

0 commit comments

Comments
 (0)