Commit graph

263 commits

Author SHA1 Message Date
Manuel Argüelles 280ddaef4a mdio: introduce Clause 45 APIs
Add `mdio_read_c45()`/`mdio_write_c45()` APIs for Clause 45 access
and remove the `protocol` MDIO binding property so that MDIO bus
controller can support more than one protocol.

A new MDIO header is introduced with generic opcodes, MMD and
registers addresses, to be used by MDIO and PHY drivers.

Existing MDIO drivers that support both Clause 22 and Clause 45
access are migrated to the new APIs.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
2023-09-28 09:33:10 +02:00
Sylvio Alves bdda8ac48e soc: esp32s3: add esp32s3_appcpu for AMP support
Adds esp32s3_appcpu SoC and update default esp32s3 SoC
to support AMP feature.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2023-09-27 12:07:21 +02:00
Tomasz Leman 9656056b19 dts: adsp: ace20: remove lp clock
LP/HP RING OSC clocks were replaced by the ACE IPLL clock.

If needed IPLL can be configured to work as low power clock. But right
now ACE uses only WOVCRO and IPLL (configured to work as HP RING OSC
clock).

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
2023-09-18 10:35:23 +01:00
Tomasz Leman 50f0e223e8 dts: adsp: ace15: remove lp clock
LP/HP RING OSC clocks were replaced by the ACE IPLL clock.

If needed IPLL can be configured to work as low power clock. But right
now ACE uses only WOVCRO and IPLL (configured to work as HP RING OSC
clock).

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
2023-09-18 10:35:23 +01:00
Tomasz Leman 2d835e1b29 dts: adsp: ace20: replace hp with ipll clock
The ACE family platforms do not have LP/HP RING OSC clocks. They were
replaced by the ACE IP integrated PLL clock. Selecting LP or HP in
CLKCTL will result in enabling IPLL.

Clock can supply frequencies for both replaced clocks, default frequency
equals to 393.2 MHz.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
2023-09-18 10:35:23 +01:00
Tomasz Leman dcecda859c dts: adsp: ace15: replace hp with ipll clock
The ACE family platforms do not have LP/HP RING OSC clocks. They were
replaced by the ACE IP integrated PLL clock. Selecting LP or HP in
CLKCTL will result in enabling IPLL.

Clock can supply frequencies for both replaced clocks, default frequency
equals to 393.2 MHz.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
2023-09-18 10:35:23 +01:00
Daniel Leung 3e3f9d155f xtensa: dc233c: enlarge ROM space
The zdsp.basicmath needs a bit more ROM space to run.
So enlarge the indicated ROM size to accommodate that.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2023-09-14 17:07:21 -04:00
Kai Vehmanen 34ea488da9 intel_adsp: ace20_lnl: add ALH DAI support
Add missing definitions for ALH DAIs. Keep the same FIXME
reminder in the comments we have for ACE1.5 that explains
the background of these definitions.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2023-08-31 17:43:16 -04:00
Adrian Bonislawski a026370461 drivers: hda: use interrupt for timing L1 exit on host DMA
To properly setup L1 exit timing this patch will use buffer interrupt
for HOST DMA and wait for Host HDA to actually start
First interrupt will clear all others.

Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-08-31 09:59:10 -04:00
Kai Vehmanen d68a58d6cd dts: xtensa: intel: add HDA DMA interrupt defs for ACE2.0
Add definitions for HDA/host DMA interrupts for Intel ACE2.0
platform.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-08-31 09:59:10 -04:00
Kai Vehmanen 62c7729b3e dts: xtensa: intel: add HDA DMA interrupt defs for cAVS platforms
Add definitions for HDA/host DMA interrupts for Intel cAVS
platforms.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-08-31 09:59:10 -04:00
Daniel Leung 169f505226 xtensa: add support for dc233c SoC for QEMU
This adds SoC and board configs to support the dc233c core
that is available on QEMU. This core has more features than
sample_controller, such as MMU support.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2023-08-26 16:50:40 -04:00
Eric Holmberg 9452cbfe9d soc: esp32s3: add ADC single-shot support
Add support for single-shot ADC readings.

Signed-off-by: Eric Holmberg <eric.holmberg@northriversystems.co.nz>
2023-08-17 10:36:20 +02:00
Tom Burdick 0e373019d6 dma: intel_adsp_gpdma: Unmask interrupt on ACE
On ACE a seperate, soc specific, interrupt mask needs to be enabled
to unmask the interrupt. Do so for GPDMA.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2023-08-04 10:41:27 +02:00
Iuliana Prodan b4293ec026 dts: xtensa: nxp: add nodes for IPC
Add mailbox and interrupt-controller nodes used for
inter-process communication.

Add also the dt binding for the interrupt-controller.
For now, this is used just to fix some compile errors,
since the mailbox requires an interrupt-controller.

For DSP, we have a direct interrupt line to the core.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2023-07-26 14:33:36 +02:00
Marek Matej 79869f8abd dts: xtensa: esp32xx rework soc/sip list
Introduce dtsi files representing the
current portfolio of chips and modules
based on the followint criteria:

- flash size
- psram size
- gpio count
- certification status

Update the boards dts files according
to which SOC/SIP they are using.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2023-07-25 18:12:33 +02:00
Gerard Marull-Paretas e4c43e4cc9 pm: power-states node needs to be a child of cpus
This again aligns with Linux.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-07-25 09:16:14 +02:00
Gerard Marull-Paretas 5eee169cf0 dts: riscv: espressif: esp32: move power-states to soc dts files
CPU idle states are not board specific. This patch moves ESP32 idle
states to the core SoC dts files. Board can always tweak some state
parameters (if needed), but the definition belongs to core SoC dts
files, same as e.g. peripherals.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2023-07-25 09:16:14 +02:00
Lucas Tamborrino 2718c82715 dts: xtensa: esp32s2: add twai as canbus
Add twai node as zephyr,canbus for testing purposes

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2023-07-24 13:25:11 +00:00
Hiroki Tada 7e3f0ef407 samples: Add esp32s2_saola overlay
- Add overlay for the esp32s2_saola board to die_temp_polling sample.
- Add aliases for the die_temp_polling sample to esp32s2 dtsi.

Signed-off-by: Hiroki Tada <tada.hiroki@fujitsu.com>
2023-07-24 13:22:03 +00:00
Eric Holmberg 2789e6a3c0 soc: esp32s3: add TWAI driver configuration
Add TWAI configuration for CAN.

Signed-off-by: Eric Holmberg <eric.holmberg@northriversystems.co.nz>
2023-07-10 15:13:52 +02:00
Jaska Uimonen e2e3dc0771 dts: xtensa: intel: add imr entry to cavs25_tgph
Add similar imr definition to cavs25_tpgh as in cavs25.

Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
2023-06-20 12:57:29 -04:00
Jaska Uimonen a8b28f13c1 soc: intel_adsp: cavs: add simple IMR functionality
Add simple mechanism to load the image from IMR memory. Basically we are
only setting a flag in power off for the next boot to jump to existing
image in IMR.

Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
2023-06-20 09:28:56 +01:00
Jaska Uimonen 09085ef63c dts: xtensa: intel: update cavs25 sram size
Cavs25 sram size should be 3MB instead of 2MB, thus update the correct
value.

Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
2023-06-16 05:46:37 -04:00
Jaroslaw Stelter 9c0dd7e3be intel_adsp: ace20_lnl: Change LNL core count to 5
The ACE 2.0 LNL platform has 5 HIFI4 cores. Change number
of cores to enable 5th core on the platform.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
2023-05-15 08:00:11 -04:00
Jaroslaw Stelter edaac6d8d2 ace20_lnl: dts: Add d-cache and i-cache line size
Added i-cache-line-size and d-cache-line-size values
to device tree for ace20_lnl platforms. These values
are used by sys_cache_instr_line_size_get and
sys_cache_data_line_size_get functions.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
2023-05-15 08:00:11 -04:00
Lucas Tamborrino a35dd4b926 drivers: dma: esp32s3: Add DMA support for esp32s3
Add GDMA support for esp32s3.
Remove suspend/resume since they are optional and do
the same as start/stop.
Fix possible null pointer derreference.

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2023-05-10 10:15:05 +02:00
Sylvio Alves 4c66ac81fd soc: esp32s3: add usb serial dts interface
Enable ESP32-S3 usb-serial interface.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2023-05-09 14:31:23 +02:00
Iuliana Prodan b2f1f64f57 boards: xtensa: nxp_adsp_imx8m: Add UART support for the ADSP from i.MX8MP
Enable UART on the DSP from the i.MX8MP target:
- add corresponding nodes in dtsi and dts;
- create a dts overlay for uart;
- add a config fragment for uart and console configuration.

So, in order to compile an application and enable UART
a user must run west build using DTC_OVERLAY_FILE and CONF_FILE.

Here's an example for hello_world:
west build -p always -b nxp_adsp_imx8m samples/hello_world/
-DDTC_OVERLAY_FILE="boards/xtensa/nxp_adsp_imx8m/
nxp_adsp_imx8m_uart.overlay" -DCONF_FILE="boards/xtensa/nxp_adsp_imx8m/
nxp_adsp_imx8m_uart.conf"

For other applications, like SOF, where we don't need UART, we simply run:
west build -p always -b nxp_adsp_imx8m ../modules/audio/sof/ --
-DTOOLCHAIN=/opt/zephyr-sdk-0.15.2/xtensa-nxp_imx8m_adsp_zephyr-elf/
bin/xtensa-nxp_imx8m_adsp_zephyr-elf -DINIT_CONFIG=imx8m_defconfig

The nxp_adsp_imx8m is using the nxp_imx_iuart driver.
For now, is used in poll mode.
Next step is to enable the interrupt controller in
DSP and use the interrupt driver UART.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2023-05-08 13:06:12 -05:00
Tomasz Leman 9028ad5d71 drivers: gpdma: pm runtime works only on ace
CAVS platforms are not fully integrated with zephyr. Some of the
registers are still programed from SOF side. This feature can be enabled
for those platforms later when integration is fully done.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
2023-04-25 16:19:45 +02:00
Benjamin Björnsson a43a43d4b0 dts: Add missing adc dt-bindings include
Add missing include of adc dt-bindings in top .dtsi
file containing an adc node.

Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
2023-04-20 10:48:33 +02:00
Sylvio Alves a6c8c6e546 soc: esp32s3: add Wi-Fi support
This adds Wi-Fi linker areas and also bring wi-Fi entry
into SoC device tree.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2023-04-19 17:11:58 +02:00
Kai Vehmanen 3702f35d40 Revert "dts: adsp: ace: Changed used watchdog device"
This reverts commit c558fd5323.

This change results in boot failures on ace15 platform.

Link: https://github.com/thesofproject/sof/issues/7433
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-04-18 18:28:45 -04:00
Jaroslaw Stelter b4497b5642 intel_adsp: ace20_lnl: Add HDA devices to devicetree
This patch adds HDA to device tree for LNL platforms.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-04-18 10:48:43 -04:00
Anas Nashif af78069782 intel_adsp: ace20_lnl: Add dma missing properties
Add dma properties to lnl in dt.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-04-18 10:48:43 -04:00
Anas Nashif 0507effd5b intel_adsp: ace20_lnl: Remove lps node
Remove lps node from DTS.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-04-18 10:48:43 -04:00
Jaroslaw Stelter 66c6b49f38 intel_adsp: ace20_lnl: Add I2S clock source dts
The I2CLCTL_MLCS setting was recently added to MTL
platform. LNL has these registers in separate space, therefore
new field is added to intel,ssp-dai.yaml and appropraite definitions
to LNL device tree.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
2023-04-18 10:48:18 -04:00
Jaroslaw Stelter 99d5d9aaa8 drivers: ssp: Repleace shim2 with hdamlssp
Repleace usage of shim2 device tree field with hdamlssp.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-04-18 10:48:18 -04:00
Jaroslaw Stelter 3c54d7efc4 intel_adsp: ace20_lnl: dmic: Add new dmic shims.
In ACE 2.0 platform (LNL) dmic got two new shim register ranges.
DMIC driver need to program them to configure the interface.
This patch adds new shims to device tree.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
2023-04-13 20:51:10 -04:00
Moritz Fischer 32bf596297 dts: xtensa: espressif: esp32s2: Add TWAI node
This adds the TWAI node to the ESP32S2 devicetree.

Signed-off-by: Moritz Fischer <moritzf@google.com>
2023-04-11 11:27:34 +02:00
Lucas Tamborrino 2c1da15e35 dts: esp32s3: add PCNT device
Add PCNT node device to esp32s3
Update PCNT binding to include esp32s3

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2023-04-05 11:23:48 -05:00
Jaroslaw Stelter 391e88a332 intel_adsp: ace20_lnl: dts: Add clkctl definition
Add clkctl definition for Intel LNL ACE platform.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
2023-04-03 15:17:21 +02:00
Kumar Gala 5c76a8119c intel_adsp: ace20_lnl: Sort SoC nodes by address
Sort SoC nodes by address to make it easier to find them.  As part
of this also move the intel-sha node under SoC where it belongs.

Signed-off-by: Kumar Gala <kumar.gala@intel.com>
2023-04-03 15:17:21 +02:00
Jaroslaw Stelter b8fb89dc27 intel_adsp: ace20_lnl: ssp: Add new ssp shims
In ACE 2.0 platform (LNL) ssp got new shim registers.
SSP driver need to program them to configure the interface.
This patch adds new shims to device tree.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
2023-04-03 15:17:21 +02:00
Kumar Gala ac10124665 intel_adsp: ace20_lnl: Move power domains under lps node.
As the power domain nodes don't represent something accessible via
a MMIO register move those under the lps node to address warnings
generated when building the DTS.

Signed-off-by: Kumar Gala <kumar.gala@intel.com>
2023-04-03 15:17:21 +02:00
Jaroslaw Stelter e2881fe61a intel_adsp: ace20_lnl: add soc definitions for LNL platform.
LNL platform is ACE 2.0 series with changes in shim registers and HW
features. Initial definition replicates MTL as much as possible, however
it will vary after enabling LNL platform.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-04-03 15:17:21 +02:00
Jaroslaw Stelter f5728c298d intel_adsp: ace20_lnl: add initial ace 2.0 (LNL) board definition
This commit adds definition of ACE 2.0 Lunar Lake board.board.

Signed-off-by: Krzysztof Frydryk <Krzysztofx.Frydryk@intel.com>
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2023-04-03 15:17:21 +02:00
Lucas Tamborrino 1b2ec541ce dts: esp32s3: add MCPWM device
Add MCPWM device node to esp32s3

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2023-04-02 22:08:57 -04:00
Lucas Tamborrino ed0d242bb7 dts: esp32s3: add LEDC device
Add LEDC device for esp32s3
Update PWM LED binding
Remove invalid comment from driver source file

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
2023-03-31 09:19:56 +02:00
Adrian Warecki c558fd5323 dts: adsp: ace: Changed used watchdog device
Changed the watchdog driver used by the ACE platform from
snps,designware-watchdog to intel,adsp-watchdog.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-03-29 09:45:49 -04:00