drivers: i3c: npcx: introduce NPCX I3C driver
This implements basic driver to utilize the I3C IP block on NPCX. 1. I3C mode: Main controller mode only. 2. Transfer: Support SDR only. 3. IBI: Support Hot-Join, IBI(MDB). Controller request is not supported. 4. Support 3 I3C modules: I3C1(3.3V), I3C2(1.8V, espi mode), (I3C3 1.8V or 3.3V) Signed-off-by: Alvis Sun <yfsun@nuvoton.com>
This commit is contained in:
parent
a3cd76b6f2
commit
c6763bd2ca
9 changed files with 2410 additions and 2 deletions
52
dts/bindings/i3c/nuvoton,npcx-i3c.yaml
Normal file
52
dts/bindings/i3c/nuvoton,npcx-i3c.yaml
Normal file
|
@ -0,0 +1,52 @@
|
|||
# Copyright (c) 2024 Nuvoton Technology Corporation.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
description: |
|
||||
Nuvoton I3C controller
|
||||
|
||||
Representation:
|
||||
|
||||
/* If CONFIG_I3C_NPCX is enabled, the suggested clock configuration is as follows: */
|
||||
&pcc {
|
||||
clock-frequency = <DT_FREQ_M(90)>; /* OFMCLK runs at 90MHz */
|
||||
core-prescaler = <3>; /* CORE_CLK runs at 30MHz */
|
||||
apb1-prescaler = <6>; /* APB1_CLK runs at 15MHz */
|
||||
apb2-prescaler = <6>; /* APB2_CLK runs at 15MHz */
|
||||
apb3-prescaler = <6>; /* APB3_CLK runs at 15MHz */
|
||||
apb4-prescaler = <3>; /* APB4_CLK runs at 30MHz */
|
||||
};
|
||||
|
||||
&rst {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i3c0 {
|
||||
status = "okay";
|
||||
|
||||
/* I3C clock frequency suggestion = <PP_SCL, OD_SCL> */
|
||||
* Full speed = <12500000, 4170000>
|
||||
* Normal speed = <7500000, 1500000>
|
||||
*/
|
||||
i3c-scl-hz = <12500000>;
|
||||
i3c-od-scl-hz = <4170000>;
|
||||
};
|
||||
|
||||
compatible: "nuvoton,npcx-i3c"
|
||||
|
||||
include: [i3c-controller.yaml, pinctrl-device.yaml, reset-device.yaml]
|
||||
|
||||
properties:
|
||||
reg:
|
||||
required: true
|
||||
|
||||
interrupts:
|
||||
required: true
|
||||
|
||||
resets:
|
||||
required: true
|
||||
|
||||
i3c-od-scl-hz:
|
||||
type: int
|
||||
description: |
|
||||
Open Drain Frequency for the I3C controller. When undefined, use
|
||||
the controller default or as specified by the I3C specification.
|
Loading…
Add table
Add a link
Reference in a new issue