Commit Graph

231 Commits

Author SHA1 Message Date
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
Tim Lin
5f502499e9 drivers/espi: ite: Refactor register defines into .c for SoC flexibility
Move register definitions from chip_chipregs.h into espi_it8xxx2.c to
make the driver more adaptable to different SoCs.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-06-05 09:34:23 +02:00
jhan bo chao
a95d413128 driver: espi: add espi peripheral channel driver for rts5912
add espi peripheral channel driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
da767376ca driver: espi: add espi peripheral channel 8042_KBC driver for rts5912
add espi peripheral channel 8042_KBC driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
805b213424 driver: espi: add espi peripheral channel acpi shd mem driver for rts5912
add espi peripheral channel acpi shd mem driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
4320fb5249 driver: espi: add espi peripheral channel acpi driver for rts5912
add espi peripheral channel acpi driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
8ceb0d0f11 driver: espi: add espi peripheral channel HOST_CMD driver for rts5912
espi: add espi peripheral channel HOST_CMD driver for rts5912

Unlike other chips using IO port 0x800-0x8ff, we utilize shared memory to
transfer host command parameters. The AP firmware must have corresponding
settings for this configuration.

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
1bc30251a6 driver: espi: add espi peripheral channel port 80 driver for rts5912
add espi peripheral channel port 80 driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
1c461e38ca driver: espi: add espi vw channel driver for rts5912
add espi vw channel driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
9d41eac7ac driver: espi: add espi oob channel driver for rts5912
add espi oob channel driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
00fac713ea driver: espi: add espi flash channel driver for rts5912
add espi flash channel driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
jhan bo chao
537791facf driver: espi: add espi driver for rts5912
add espi driver for rts5912

Signed-off-by: jhan bo chao <jhan_bo_chao@realtek.com>
2025-05-29 23:25:27 +02:00
Anas Nashif
2aacbcaab5 style: add missing curly braces in if/while/for statements.
Add missing curly braces in if/while/for statements.

This is a style guideline we have that was not enforced in CI. All
issues fixed here were detected by sonarqube SCA.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-05-17 14:10:33 +02:00
Tom Chang
eb5597e90a drivers: espi: npcx: ensure the host receives the value from eSPI VW
This commit adds an option to verify weather the host has read the value
after the wire 3-0 bits have been updated.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2025-04-18 10:40:23 +02:00
Aditya Bhutada
2c36616dd2 drivers: espi: espi_mchp_xec: Fix the VW change check time
Adjusted the VW change check timings:
- Polling time changed from 100 uSec to 1 uSec.
- Timeout value changed from 10 mSec to 1 mSec.

This is to achieve the lowest possible pulse width for SCI VW in S0,
while ensuring that the VW change check is still reliable for S0iX
where SoC may take longer to process upstream events.

Also added -ETIMEDOUT error when failure.

Signed-off-by: Aditya Bhutada <aditya.bhutada@intel.com>
2025-04-17 00:57:28 +02:00
Manimaran A
810f549ed4 drivers: eSPI: microchip: Port80 Multibyte
Updated ISR to send multibyte p80 data

Signed-off-by: Manimaran A <manimaran.a@microchip.com>
2025-04-01 22:12:28 +02:00
Tom Chang
de3da0e4fa drivers: espi: npcx: update the arbitration for eSPI TAF access
This commit adds the arbitration when EC and eSPI TAF access flash
simultaneously.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2025-03-14 05:46:23 +01:00
Jun Lin
aec991ef1a driver: espi: npcx: add option to reset SLP_Sx virtual wire
Add a Kconfig option ESPI_NPCX_RESET_SLP_SX_VW_ON_ESPI_RST.
When the option is enabled, the hardware resets the SLP_S3/SLP_S4/SLP_S5
virtual wires when the eSPI_Reset is asserted. This is required to
synchronize these virtual wires on the ungraceful global reset.

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2025-02-17 15:47:23 +00:00
Tom Chang
549def6b10 drivers: espi: npcx: update the handler for accessing the flash
This commit updates the handler of the eSPI TAF request for accessing
two external flashes.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2025-01-14 17:57:50 +01:00
Jun Lin
2fc2b19670 driver: eSPI: npcx: use CONFIG_ESPI_LOG_LEVEL
This commit replaces the hard-coded log level with
CONFIG_ESPI_LOG_LEVEL.

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2024-12-19 04:18:34 +01:00
Pieter De Gendt
41b0bd12ed drivers: espi: saf: Place API into iterable section
Add wrapper DEVICE_API macro to all espi_saf_driver_api instances.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-12-02 22:09:03 +00:00
Pieter De Gendt
bad2bee941 drivers: espi: Place API into iterable section
Add wrapper DEVICE_API macro to all espi_driver_api instances.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-12-02 22:09:03 +00:00
Gerard Marull-Paretas
4f6de0169c drivers: microchip xec: select PINCTRL
All drivers using the pinctrl API must select the PINCTRL option.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-11-29 05:41:53 +01:00
Dino Li
7c2478e547 espi/it8xxx2: supports host command interrupt requested by custom opcode
Enables or disables host command interrupt when
ECUSTOM_HOST_SUBS_INTERRUPT_EN opcode is requested.

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
2024-11-16 15:07:38 -05:00
Vijay Hiremath
3f95fd4349 eSPI: NPCX/ITE: Enable conditional virtual wire valid bit check
On the new Intel SoC, the "Valid" bit of the Virtual Wire is set only for
Virtual Wires that undergo changes. This behavior differs from previous
generations. Therefore, to maintain backward compatibility, a conditional
check for the virtual wire valid bit is added for processing the virtual
wire level.

Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
2024-11-16 13:50:50 -05:00
Jun Lin
69e85b25fe board: npcx: remove CONFIG_PINCTRL from defconfig of npcx boards
The CONFIG_PINCTRL is removed from the board's defconfig files.
Drivers which use pin control function should add "select PINCTRL"
in their Kconfig files.

Fixes #78619

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2024-11-07 08:59:14 -08:00
Tom Chang
cbb322937f drivers: espi: npcx: support espi taf rpmc request
This commit adds support for handling espi taf rpmc requests.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-10-17 09:44:39 +02:00
Bernardo Perez Priego
1cc93810d0 ec_host_cmd: Fix generating multiple Port80 notifications
Port80 notifications are continously generated as long as NOT_EMPTY
bit inside of Data Attributes register is set. This register was only
read once prior entering loop and its value was not checked on each
iteration.

This patch will include reading Data Attributes register on each
iteration, this way we can exit loop when no more data is available.

Signed-off-by: Bernardo Perez Priego <bernardo.perez.priego@intel.com>
2024-10-10 20:24:06 -04:00
Yong Cong Sin
52a202309b zephyr: bulk update to DT_NODE_HAS_STATUS_OKAY
Change instances of:

DT_NODE_HAS_STATUS(<node_id>, okay)

to

DT_NODE_HAS_STATUS_OKAY(<node_id>)

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2024-10-03 17:06:52 +01:00
Tom Chang
080787f5b7 drivers: espi: npcx: update the parsing function for espi taf
This commit updates the FLASHRXBUF parsing functionality of eSPI TAF.
It ensures that data can be read correctly from FLASHRXBUF[0].
And, the eSPI TAF request can be parsed correctly.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-10-01 10:48:43 +01:00
Tom Chang
9795dc2758 drivers: espi: npcx: add support to customize vw index
This CL adds support to revise vw index accroding to the
vw-index-extend-set.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-09-20 15:14:57 -05:00
Tom Chang
0e4ac766fb drivers: espi: npcx: add support for DnX VW
This CL adds support to handle DnX virtual wire signal.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-09-20 15:14:57 -05:00
Tim Lin
32a19ea28c drivers/espi: it8xxx2: Fix mask when SRAM size not the power of 2
When using the it8xxx2bx chip, because the SRAM size is 60k and
not a power of 2, using (CONFIG_SRAM_SIZE - 1) results in an
incorrect value for the h2ram base address mask.
Therefore, the mask is declared as GEMASK(19, 0) here.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-09-02 11:49:52 +02:00
Pisit Sawangvonganan
1bcae0ea9f style: drivers: comply with MISRA C:2012 Rule 15.6
Add missing braces to comply with MISRA C:2012 Rule 15.6 and
also following Zephyr's style guideline.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2024-08-20 10:33:51 +02:00
Dino Li
b9d8e9a634 it8xxx2/espi: disable IBF interrupt by calling interrupt controller API
Disable input buffer full interrupt for 60h/64h and 62h/66 ports by
calling interrupt controller API. The API has barrier mechanism to
ensure that a thread's requirement to disable peripheral interrupt
takes effect before enabling CPU interrupt. Therefore, the disabling
operation does not occur in ISR and results in interrupt 0 symptom.

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
2024-08-20 10:33:19 +02:00
Tim Lin
50a23a6195 drivers/espi: it8xxx2: Fix H2RAM address mask size to match SRAM size
The base address of H2RAM can be as large as KB(CONFIG_SRAM_SIZE), so
the mask for the H2RAM address should be (KB(CONFIG_SRAM_SIZE)-1).
This PR corrects the size of the mask.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-08-15 12:40:33 +02:00
Jun Lin
1aff275642 soc: npcx: scfg: select host interface type in global
The Host Interface Type in the DEVCNT register sets the HIF type
(either eSPI or LPC).
Currently, it is configured in the host-interface-related drivers like
eSPI or SHI. However, some I/O pads sourced from VHIF in the other
modules such as GPIO and I3C also rely on this field. It might be
problematic when using those I/Os without enabling eSPI or SHI drivers.
This commit moves the setting from the specific drivers to the global
system initialization function scfg_init().

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2024-08-14 10:47:15 +01:00
Flavio Ceolin
1fe98407ce espi: ite: Use proper flexible array
Use proper flexible array instead of a GNU extension.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2024-08-05 18:38:42 -04:00
Jun Lin
51cfbd8c5f drivers: espi: host_subs: npcx: fix LDN register definition of PMCH
The register offset definition of the I/O port Data Base Address
register (0x60, 0x61) and Command/Status Base Address register
(0x62, 0x63) are reversed. This commit fixes it to avoid confusion.

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2024-07-27 15:15:22 +03:00
Jose Alberto Meza
f854b8b799 drivers: samples: espi: Adjust terms per eSPI specification 1.5
Replace CONFIG_ESPI_SLAVE by CONFIG_ESPI_TARGET
Replace CONFIG_ESPI_SAF by CONFIG_ESPI_TAF
Replace ESPI_BUS_SAF_NOTIFICATION with ESPI_TAF_BUS_NOTIFICATION in API

Signed-off-by: Jose Alberto Meza <jose.a.meza.arellano@intel.com>
2024-06-11 19:46:08 -04:00
Tom Chang
a33341ac66 drivers: espi: npcx: add support 66MHz eSPI clock
This CL adds support 66MHz eSPI clock for NPCX4.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-06-04 07:56:19 +02:00
Yong Cong Sin
bbe5e1e6eb build: namespace the generated headers with zephyr/
Namespaced the generated headers with `zephyr` to prevent
potential conflict with other headers.

Introduce a temporary Kconfig `LEGACY_GENERATED_INCLUDE_PATH`
that is enabled by default. This allows the developers to
continue the use of the old include paths for the time being
until it is deprecated and eventually removed. The Kconfig will
generate a build-time warning message, similar to the
`CONFIG_TIMER_RANDOM_GENERATOR`.

Updated the includes path of in-tree sources accordingly.

Most of the changes here are scripted, check the PR for more
info.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-05-28 22:03:55 +02:00
Tom Chang
3f8fe6b4b5 drivers: espi: npcx: select RING_BUFFER for p80
This CL adds automatic select CONFIG_RING_BUFFER for port 80 multi-byte.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-05-20 20:52:35 -04:00
Tom Chang
fe138fc246 drivers: espi: npcx: update espi taf driver
This CL updates the read, write, erase, and get_channel_status
implementations of NPCX chip.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-05-20 20:52:35 -04:00
Jun Lin
71b71015a9 driver: espi: npcx: enable the Serial Port
Initialize and enable the Serial Port/Host UART when
CONFIG_ESPI_PERIPHERAL_UART=y.

Signed-off-by: Jun Lin <CHLin56@nuvoton.com>
2024-05-14 13:25:43 +02:00
Dino Li
f76f2928f1 espi/it8xxx2: enable EC to accept port 81 cycle
This allows EC to accept 2 bytes of port 80 data written from the Host.

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
2024-05-10 20:25:13 -04:00
Jose Alberto Meza
30eda2058b treewide: drivers: espi: Adjust terms per eSPI specification 1.5
1) Replace master/slave in API for new terms in eSPI spec 1.5
2) Reflect eSPI VW change and macro changes across eSPI drivers
3) Update terms in eSPI driver sample and eSPI test driver

Signed-off-by: Jose Alberto Meza <jose.a.meza.arellano@intel.com>
2024-05-02 13:56:46 -04:00
Tom Chang
a5741c8cca drivers: espi: npcx: add dependency for espi taf
This CL adds CONFIG_FLASH as dependency for ESPI_TAF_NPCX.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-04-23 15:31:44 +02:00
Tom Chang
b89a7203e2 drivers: espi: npcx: support multi-byte for dp80
This CL adds multi-byte support for debug port 80 on npcx4.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-04-19 16:40:46 +00:00
Tom Chang
0e4b5de6ca drivers: espi: npcx: workaround Global Reset issue
Apply the workaround for the issue "eSPI global reset" in the
NPCX49nF_Errata

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2024-03-18 19:11:29 +00:00