zephyr/samples/drivers/espi
Mulin Chao be217e4a3a drivers: eSPI: add eSPI driver support for NPCX7 series.
In npcx7 series, all of them support the Intel Enhanced Serial
Peripheral Interface (eSPI) Revision 1.0. This specification provides a
path for migrating host sub-devices via LPC to a lower pin count, higher
bandwidth bus. In addition to Host communication via the peripheral
channel, it provides virtual wires support, out-of-band communication,
and device mastering option over the Chipset SPI flash.

Becisdes introducing eSPI device in npcx7, this CL also includes:

1. Add eSPI device tree declarations.
2. Add npcx7-espi-vws-map.dtsi to present the relationship between eSPI
   Virtual-Wire signals, eSPI registers, and wake-up input sources.
3. Zephyr eSPI api implementation.
4, Add OOB (Out of Band tunneled SMBus) support.
5. Add configuration files for eSPI test suites.

Signed-off-by: Mulin Chao <MLChao@nuvoton.com>
2020-10-02 11:33:15 +02:00
..
boards drivers: eSPI: add eSPI driver support for NPCX7 series. 2020-10-02 11:33:15 +02:00
dts/bindings samples: drivers: espi: Convert espi sample to devicetree 2020-08-18 14:22:10 -04:00
src device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
CMakeLists.txt samples: drivers: espi: Convert espi sample to devicetree 2020-08-18 14:22:10 -04:00
Kconfig samples: drivers: espi: Convert espi sample to devicetree 2020-08-18 14:22:10 -04:00
README.rst samples: exclude mec15xxevb_assy6853 in espi sample when sanitycheck 2020-09-17 16:13:51 -05:00
prj.conf
prj_mec1501modular_assy6885.conf samples: drivers: espi: Convert espi sample to devicetree 2020-08-18 14:22:10 -04:00
prj_npcx7m6fb_evb.conf drivers: eSPI: add eSPI driver support for NPCX7 series. 2020-10-02 11:33:15 +02:00
sample.yaml samples: exclude mec15xxevb_assy6853 in espi sample when sanitycheck 2020-09-17 16:13:51 -05:00

README.rst

.. _espi-sample:

Enhanced Serial Peripheral Interface
####################################

Overview
********

This sample demonstrates how to use the Enhanced Serial Peripheral Interface
(eSPI) API.
It shows how to configure and select eSPI controller capabilities as part of
a simple eSPI handshake that includes exchanging virtual wire packets.

Standard platform signals are sent virtual wire packets over the bus.
Callbacks are registered that will write to the console indicating main
eSPI events and when a virtual wire is received.

Building and Running
********************

The sample can be built and executed on boards supporting eSPI.
Any pins required for minimum eSPI handshake should be configured.
Sample requires a correct harness and fixture setup.
Please connect an eSPI device to the testing board.
After that for the correct execution of that sample in sanitycheck, add into
boards's map-file next fixture settings::

      - fixture: espi_device_connect

Sample output
=============

.. code-block:: console

   Hello eSPI test!
   eSPI test - I/O initialization...complete
   eSPI slave configured successfully!
   eSPI test - callbacks initialization... complete
   eSPI test - callbacks registration... complete
   eSPI test - Power initialization...complete
   eSPI test - Handshake
   eSPI BUS reset 0
   VW channel is ready

   PLT_RST changed 1
        1st phase completed
        2nd phase completed
        3rd phase completed

note:: The values shown above might differ.