Browse Source
Add it51xxx i3c controller driver. Tested with: it51xxx evb board with st_lps22df sensor Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>pull/89523/head
5 changed files with 1844 additions and 0 deletions
@ -0,0 +1,78 @@
@@ -0,0 +1,78 @@
|
||||
# Copyright (c) 2025 ITE Corporation. All Rights Reserved. |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
description: IT51XXX I3CM controller |
||||
|
||||
compatible: "ite,it51xxx-i3cm" |
||||
|
||||
include: [i3c-controller.yaml, pinctrl-device.yaml] |
||||
|
||||
properties: |
||||
reg: |
||||
required: true |
||||
|
||||
interrupts: |
||||
required: true |
||||
|
||||
io-channel: |
||||
required: true |
||||
type: int |
||||
enum: [0, 1, 2, 3] |
||||
description: | |
||||
The it51xxx chip features four i3c io channels and two i3c cotroller |
||||
(i3cm) engines. This property allows the i3cm engine to select the |
||||
desired i3c io channel. To ensure proper i3c functionality, make sure |
||||
that multiple controllers (including the i3cm controller and i3cs |
||||
target engines) are not assigned the same io channel. |
||||
|
||||
i3c-pp-duty-cycle: |
||||
default: 50 |
||||
type: int |
||||
description: | |
||||
The duty cycle of push-pull frequency(unit in percentage). |
||||
|
||||
i3c-od-scl-hz: |
||||
required: true |
||||
type: int |
||||
description: | |
||||
The open-drain frequency for the i3c controller. |
||||
|
||||
i3c-scl-hddat: |
||||
type: int |
||||
description: | |
||||
i3c data hold time(0 by default). The time is calculated as: |
||||
t_hddat = (i3c-scl-hddat + 1) * 20.8ns. The range of i3c-scl-hddat is |
||||
[63:0]. |
||||
|
||||
i3c-scl-tcas: |
||||
type: int |
||||
description: | |
||||
i3c clock after start condition(1 by default). The time is calculated as: |
||||
t_cas = (i3c-scl-tcas + 1) * 20.8ns. The maximum value is 255. |
||||
|
||||
i3c-scl-tcbs: |
||||
type: int |
||||
description: | |
||||
i3c clock before stop condition(0 by default). The time is calculated as: |
||||
t_cbs = (i3c-scl-tcbs + 1) * 20.8ns. The maximum value is 255. |
||||
|
||||
i3c-scl-tcasr: |
||||
type: int |
||||
description: | |
||||
i3c clock after repeated start condition(1 by default). The time is |
||||
calculated as: t_casr = (i3c-scl-tcasr + 1) * 20.8ns. The maximum value |
||||
is 255. |
||||
|
||||
i3c-scl-tcbsr: |
||||
type: int |
||||
description: | |
||||
i3c clock before repeated start condition(0 by default). The time is |
||||
calculated as: t_cbsr = (i3c-scl-tcbsr + 1) * 20.8ns. The maximum value |
||||
is 255. |
||||
|
||||
i2c-scl-hddat: |
||||
type: int |
||||
description: | |
||||
i2c data hold time(0 by default). The time is calculated as: |
||||
t_hddat = (i2c-scl-hddat + 1) * 20.8ns. The range of i3c-scl-hddat is |
||||
[65535:0]. |
Loading…
Reference in new issue