Browse Source

driver: i3c: initial i3c driver basic support for RA family

This commit introduces basic support for I3C master mode.

Signed-off-by: Ta Minh Nhat <nhat-minh.ta.yn@bp.renesas.com>
pull/91916/merge
Ta Minh Nhat 1 month ago committed by Benjamin Cabé
parent
commit
096801f1a9
  1. 5
      drivers/i3c/CMakeLists.txt
  2. 1
      drivers/i3c/Kconfig
  3. 11
      drivers/i3c/Kconfig.renesas
  4. 1246
      drivers/i3c/i3c_renesas_ra.c
  5. 56
      dts/bindings/i3c/renesas,ra-i3c.yaml
  6. 1
      include/zephyr/dt-bindings/pinctrl/renesas/pinctrl-ra.h
  7. 5
      modules/Kconfig.renesas

5
drivers/i3c/CMakeLists.txt

@ -51,6 +51,11 @@ zephyr_library_sources_ifdef( @@ -51,6 +51,11 @@ zephyr_library_sources_ifdef(
i3c_stm32.c
)
zephyr_library_sources_ifdef(
CONFIG_I3C_RENESAS_RA
i3c_renesas_ra.c
)
zephyr_library_sources_ifdef(
CONFIG_I3C_DW
i3c_dw.c

1
drivers/i3c/Kconfig

@ -214,5 +214,6 @@ rsource "Kconfig.dw" @@ -214,5 +214,6 @@ rsource "Kconfig.dw"
rsource "Kconfig.test"
rsource "Kconfig.stm32"
rsource "Kconfig.it51xxx"
rsource "Kconfig.renesas"
endif # I3C

11
drivers/i3c/Kconfig.renesas

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
# Copyright (c) 2025 Renesas Electronics Corporation
# SPDX-License-Identifier: Apache-2.0
config I3C_RENESAS_RA
bool "Renesas RA I3C driver support"
default y
depends on DT_HAS_RENESAS_RA_I3C_ENABLED
select USE_RA_FSP_I3C
select PINCTRL
help
Enable support for I3C on Renesas RA microcontrollers.

1246
drivers/i3c/i3c_renesas_ra.c

File diff suppressed because it is too large Load Diff

56
dts/bindings/i3c/renesas,ra-i3c.yaml

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
# Copyright (c) 2025 Renesas Electronics Corporation
# SPDX-License-Identifier: Apache-2.0
description: Renesas RA I3C controller
compatible: "renesas,ra-i3c"
include: [i3c-controller.yaml, pinctrl-device.yaml]
properties:
channel:
type: int
required: true
reg:
required: true
clocks:
required: true
clock-names:
required: true
enum:
- "pclk"
- "tclk"
description: |
Clocks must be given corresponding names so that the shim driver can recognize them.
"pclk": peripheral clock source
"tclk": transfer clock source
interrupts:
required: true
interrupt-names:
required: true
enum:
- "resp"
- "rx"
- "tx"
- "rcv"
- "ibi"
- "eei"
description: |
Interrupts must be given corresponding names so that the shim driver can recognize them.
"resp": Command response interrupt
"rx": Rx data buffer full interrupt
"tx": Tx data buffer empty interrupt
"rcv": Receive status buffer full interrupt
"ibi": IBI data interrupt
"eei": Error, timeout and HDR exit interrupt
pinctrl-0:
required: true
pinctrl-names:
required: true

1
include/zephyr/dt-bindings/pinctrl/renesas/pinctrl-ra.h

@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
#define RA_PSEL_SCI_9 0x5
#define RA_PSEL_SPI 0x6
#define RA_PSEL_I2C 0x7
#define RA_PSEL_I3C 0x7
#define RA_PSEL_CLKOUT_RTC 0x9
#define RA_PSEL_ACMPHS_VCOUT 0x9
#define RA_PSEL_CAC_ADC 0xa

5
modules/Kconfig.renesas

@ -25,6 +25,11 @@ config USE_RA_FSP_SPI @@ -25,6 +25,11 @@ config USE_RA_FSP_SPI
help
Enable RA FSP SPI driver
config USE_RA_FSP_I3C
bool
help
Enable RA FSP I3C driver
config USE_RA_FSP_DTC
bool
help

Loading…
Cancel
Save