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 @@ |
|||||||
|
# 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