Commit graph

502 commits

Author SHA1 Message Date
Camille BAUD
8c385be293 soc: bflb: enable clock_control for bl60x
This enables the clock_control driver build on bl60x.
It is currently deferred init, due to being incompatible
with current SDK-based boot, to avoid later giant PR.

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-06-21 10:40:20 +02:00
Camille BAUD
eb06f11a8f soc: bflb: fix bl60x using wrong mtime freq
use new timebase-frequency to fix the timebase of this SoC

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-06-18 09:12:26 -04:00
Tim Lin
a62f157118 drivers/espi: ite: Add it51xxx compatibility with it8xxx2 support retained
The driver originally supported only it8xxx2 series. This updates
introduces compatibility allow it to also support it51xxx series
with minimal changes.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-06-16 14:12:44 +02:00
Raffael Rostagno
0dd3274a92 dts: esp32c2: esp8684: Add GDMA support
Add GDMA peripheral to device tree.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-06-09 14:35:51 -07:00
Ruibin Chang
47d1e38043 drivers/counter: implement it51xxx counter driver
Implement counter driver for ITE it51xxx series chip.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-06-05 12:33:29 +02:00
Ruibin Chang
ec6b34d870 drivers/timer/it51xxx: remove not used timer
Timer 7 is not used in timer driver, which means that timer
driver doesn't initialize timer 7, it's just declared in dtsi.
So I remove it, timer 7 will be used as alarm timer for counter driver.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-06-05 12:33:29 +02:00
Benjamin Cabé
eec8db7bfb soc: esp32c6: Fix clock references
since commit e0a915a178, rtc is now clock

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-02 22:10:02 +02:00
Sylvio Alves
e0a915a178 soc: espressif: convert rtc peripheral to clock subsystem
Current ESP32 clock system is mixed with RTC labeling/registers,
but it doesn't implement a real-time clock (RTC) driver.

To avoid confusion and allow adding a proper RTC driver later,
this commit renames the existing RTC interface to CLOCK and make
it as a subsystem without any peripheral attached to it.

This better reflects its actual purpose as a general clock controller.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2025-06-02 17:38:08 +02:00
Camille BAUD
f81e7559bf drivers: spi: introduce basic spi driver for wch
introduces a basic SPI driver for CH32 series

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-29 23:25:49 +02:00
Tim Lin
022043c6f6 soc/ite/ec: it51xxx: Add a new SoC variant it51526bw
1. Add it51526bw SoC variant to it51xxx SoC series.
2. Create the .dtsi file with adjusted flash size for 512Kb (default = 1M).

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-05-29 08:42:08 +02:00
Joel Guittet
9d4530fb79 drivers: counter: introduce counter node in esp32 timers
Add counter device tree node to the esp32 timers.

Signed-off-by: Joel Guittet <joelguittet@gmail.com>
2025-05-29 08:41:59 +02:00
Benjamin Cabé
464a49d1af dts: riscv: aesc: Add reg-names to machine timer node
Commit 42fb9067e4 makes it mandatory to
now have reg-names property on the riscv,machine-timer node. This DTS
file was somehow missed as part of the refactoring.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-05-27 21:39:55 +02:00
Chen Xingyu
e40315eb27 dts: riscv: Add reg-names to machine timer nodes
This commit updates all relevant device tree source files using the
riscv,machine-timer binding to explicitly define `reg-names` for the MTIME
and MTIMECMP registers.

This change ensures compatibility with the updated riscv_machine_timer
driver, which now relies on `reg-names` to resolve register addresses
instead of using fixed index positions.

Signed-off-by: Chen Xingyu <hi@xingrz.me>
2025-05-27 19:04:22 +02:00
Miguel Gazquez
be9549be60 soc: Add support for the WCH CH32V303
Adds support for building an image for the ch32v303.

Signed-off-by: Miguel Gazquez <miguel.gazquez@bootlin.com>
2025-05-24 18:03:53 +02:00
Raffael Rostagno
d8c6376030 soc: esp32c6: i2s: Add support
Add i2s support to ESP32-C6.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-05-22 15:25:12 +02:00
Raffael Rostagno
fb2b48fe41 drivers: pcnt: esp32c6: Add support
Add PCNT support to ESP32-C6.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-05-22 15:23:31 +02:00
Camille BAUD
7521971de8 dts: bflb: Enable efuse driver on bl60x
This enables the driver by default, it will be needed at init in the future

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-19 10:11:58 +02:00
Yunshao Chiang
8f8b223ff2 drivers: crypto: add it51xxx sha256 driver
Implement a crypto sha256 driver for it51xxx series.

Signed-off-by: Yunshao Chiang <Yunshao.Chiang@ite.com.tw>
2025-05-16 19:07:37 +02:00
Daniel Schultz
2120b82ec9 dts: riscv: Add aesc
ElemRV-N is based on the nitrogen SoC platform. Add the
base nitrogen device-tree and one for elemrv-n. The elemrv-n
device-tree will contain all IP cores later.

Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
2025-05-14 14:09:41 +02:00
Camille BAUD
e4783692e4 modules: hal_wch: add CH32V203 support
Adds CH32V203 support

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-14 11:02:52 +01:00
Camille BAUD
2013d6e129 dts: wch: Introduce CH32V203
Introduce CH32V203 SoC

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-14 11:02:52 +01:00
Camille BAUD
bab50a55de dts: wch: Enable using whole flash with CH32V208
Enables using the whole flash on CH32V208
This also involves limiting frequency of the CPU to 120Mhz
from 144Mhz to meet recommendations.

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-12 16:47:33 +02:00
d68c18471e dts: wch: add the Devicetree for the CH32V006
The CH32V006 is part of the CH32V00x series of 32 bit RISC-V
microcontrollers. This series is an evolution of the CH32V003 which
was used as a basis for this Devicetree definition.

Compared to the CH32V003, thie CH32V006 has an extra GPIO port (PB),
an extra UART (UART2), 8 KiB of RAM, 62 KiB of flash, and uses the
QingKe V2C core.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2025-05-09 01:40:22 +02:00
Tim Lin
b4936c587a dts: ite: it51xxx: Change the base address of voltage selection
Change the base address of GPIO and pinctrl voltage selection
The new base address enables more pins to support voltage selection.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-05-07 13:33:14 +02:00
Ruibin Chang
265a0b991a drivers/pwm/it51xxx: implement pwm driver
Implement pwm driver for ITE it51xxx series chip.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-05-07 08:17:12 +01:00
Henrik Brix Andersen
de2f9ee9b4 dts: bindings: gpio: neorv32: require interrupt property to be set
Require the interrupt property for the NEORV32 GPIO controller to be set.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-05-06 13:01:20 +02:00
Ren Chen
9743a983f8 drivers: i3c: add it51xxx i3cm driver
Add it51xxx i3c controller driver.

Tested with: it51xxx evb board with st_lps22df sensor

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2025-05-06 13:01:13 +02:00
Ren Chen
76efd333cc drivers: i3c: add it51xxx i3cs driver
Add it51xxx i3c target driver.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2025-05-06 13:01:13 +02:00
b1aadb6729 drivers: pwm: add a CH32V00x General-prupose Timer Module (GPTM) driver
The GPTM is a general purpose module with a 16 bit prescaler, 16 bit
counter, and 4 compare units that can be used for PWM generation.

Use the same style as gd32 where the timer is a counter and the PWM
mode is a child node.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2025-05-05 21:56:38 +02:00
Henrik Brix Andersen
bd409ab231 dts: riscv: neorv32: add GPTMR devicetree node
Add NEORV32 General Purpose Timer (GPTMR) devicetree node.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-05-05 12:20:50 +02:00
aa469e05fe drivers: pinctrl: enable the AFIO clock on the CH32V003/20x/30x
The Alternate Function IO (AFIO) block must have the clock enabled
before configuring. Some remappings seem to work without, but some
like EXTI do not. Fix.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2025-05-02 10:38:54 +02:00
Raffael Rostagno
8167fe381d drivers: can: esp32c6: Add support
Add TWAI support to ESP32-C6.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-05-02 10:38:39 +02:00
Tim Lin
f7d381fef1 drivers/i2c: Add I2C driver of it51xxx
Implement the functions of I2C host and target.
I2CM: supports nine hosts and each one able located at I2C interface
      0~12.
      supports two 32 bytes dedicated FIFO mode for read and write.
I2CS: supports three targets and each one able located at I2C
      interface 0~8.
      supports 16 bytes dedicated FIFO mode that only supports write or
      read mode and the maximum buffer size is 256 bytes.
      support non-FIFO write to shared FIFO read mode. The maximum
      shared FIFO size for read is 256 bytes.
The APIs test include: i2c_write(), i2c_read(), i2c_burst_read(),
                       i2c_burst_write(), i2c_write_read()

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-04-29 16:48:06 +02:00
Henrik Brix Andersen
1b203bdb77 dts: riscv: neorv32: add PWM controller devicetree node
Add devicetree node for the NEORV32 PWM controller.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2025-04-29 13:00:17 +02:00
Benjamin Cabé
2e881018ac boards: dts: soc: bflb: use proper folder names
Folders should be named after the vendor prefix

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-04-28 13:40:55 +02:00
Tim Lin
c6824e95ff dts: ite: it8xxx2: Add pinctrl extend setting of CEC alternate function
Add pinctrl extend setting of CEC alternate function.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-04-28 09:23:08 +01:00
1d7a095779 soc: wch: move from qingke-v2 to the more specific qingke-v2a
The CH32V003 CPU is a QingKe V2A while others in the CH32V00x series
use the QingKe V2C. Prepare for adding support for the CH32V006 moving
to the more specifc qingke-v2a, moving some cases of SOC_CH32V003
actually meaning SOC_FAMILY_QINGKE_V2A.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2025-04-26 10:55:45 +02:00
7f21dc2dfa drivers: watchdog: add a CH32V00x Independent Watchdog (IWDT) driver
The CH32V003 has a built-in watchdog that runs off the low speed
internal oscillator. Add a driver.

Signed-off-by: Michael Hope <michaelh@juju.nz>
2025-04-26 10:55:17 +02:00
Lucas Tamborrino
5d74f78332 drivers: gpio: Add LP GPIO
Add LP GPIO support for LP Core

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2025-04-25 14:06:18 +02:00
Ruibin Chang
eb99158a80 drivers/sensor/ite/tach/it51xxx: implement tachometer driver
Implement tachometer driver for ITE it51xxx series chip.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-04-24 11:56:44 +02:00
Gerson Fernando Budke
531915deda drivers: serial: bouffalolab: Add bflb serial driver
Add Bouffalo Lab serial driver. The driver uses pinctrl to configure
pins and have power management capabilities.

Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2025-04-24 01:26:37 +02:00
Gerson Fernando Budke
6520633a90 drivers: pinctrl: bouffalolab: Add bflb pinctrl driver
Add Bouffalo Lab pinctrl driver.

Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2025-04-24 01:26:37 +02:00
Gerson Fernando Budke
cb84060409 dts: riscv: bouffalolab: Add bl60x series cpu
Introduce Bouffalo Lab vendor with BL60x cpu.

Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>
2025-04-24 01:26:37 +02:00
Yunshao Chiang
13087ee1b0 drivers: adc: add it515xx_evb board adc driver
Add it515xx analog to digital converter driver which supports 8 channels
ch0 ~ ch7 and 12-bit resolution.

Signed-off-by: Yunshao Chiang <Yunshao.Chiang@ite.com.tw>
2025-04-23 15:02:36 +02:00
Eric Ackermann
e367e1d607 soc: cva6: Add device tree node for RISC-V mtimer
The device tree entry for cva6 is currently missing a device tree node
for the mtime and mtimecmp registers in the core-local interrupt
controllers.
This causes the RISC-V machine timer driver not to be built, causing
build failures as the system clock is missing.
This commit rectifies this by adding the corresponding device tree
entry.

Signed-off-by: Eric Ackermann <eric.ackermann@cispa.de>
2025-04-18 17:46:30 +02:00
Andrei-Edward Popa
502e622644 dts: riscv: wch: added i2c node
added i2c node for ch32v003

Signed-off-by: Andrei-Edward Popa <andrei.popa105@yahoo.com>
2025-04-17 21:17:06 +02:00
Ruibin Chang
41bc8efbee drivers/watchdog/it51xxx: implement watchdog driver
Implement watchdog driver for ITE it51xxx series chip.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-04-15 09:28:19 +02:00
Ruibin Chang
fb35b6890d drivers/input/it51xxx: implement kbd driver
Implement kbd driver for ITE it51xxx series chip.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-04-11 14:53:11 +02:00
Lucas Tamborrino
232e2c5a3c drivers: uart: espressif: Add LP UART driver
Add LP UART driver for LP Core

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2025-04-11 13:34:17 +02:00
Eric Ackermann
39babba9a9 soc: add OpenHW Group CVA6 SoC
Adds support for the CVA6 family of RISC-V CPUs.
CVA6 is commonly found as a soft core CPU on FPGA designs.
Different configurations and instruction set extensions can be
configured, and different SoCs targeting various FPGA boards are
available.
This commit adds support for the 32-bit and 64-bit configurations
of CVA6, as well as three slightly different SoCs (a minimal 32-bit
configuration, a 64-bit configuration without FPU, a 64-bit
configuration with FPU).

Signed-off-by: Eric Ackermann <eric.ackermann@cispa.de>
2025-04-11 13:33:50 +02:00