2019-05-19 20:07:45 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2018-06-27 00:26:14 +08:00
|
|
|
|
2014-02-28 23:47:50 +08:00
|
|
|
#
|
|
|
|
# TI SOC drivers
|
|
|
|
#
|
|
|
|
menuconfig SOC_TI
|
|
|
|
bool "TI SOC drivers support"
|
|
|
|
|
|
|
|
if SOC_TI
|
|
|
|
|
|
|
|
config KEYSTONE_NAVIGATOR_QMSS
|
|
|
|
tristate "Keystone Queue Manager Sub System"
|
|
|
|
depends on ARCH_KEYSTONE
|
|
|
|
help
|
|
|
|
Say y here to support the Keystone multicore Navigator Queue
|
|
|
|
Manager support. The Queue Manager is a hardware module that
|
|
|
|
is responsible for accelerating management of the packet queues.
|
|
|
|
Packets are queued/de-queued by writing/reading descriptor address
|
|
|
|
to a particular memory mapped location in the Queue Manager module.
|
|
|
|
|
|
|
|
If unsure, say N.
|
|
|
|
|
2014-03-31 05:29:04 +08:00
|
|
|
config KEYSTONE_NAVIGATOR_DMA
|
|
|
|
tristate "TI Keystone Navigator Packet DMA support"
|
|
|
|
depends on ARCH_KEYSTONE
|
|
|
|
help
|
|
|
|
Say y tp enable support for the Keystone Navigator Packet DMA on
|
|
|
|
on Keystone family of devices. It sets up the dma channels for the
|
|
|
|
Queue Manager Sub System.
|
|
|
|
|
|
|
|
If unsure, say N.
|
|
|
|
|
2018-02-23 23:43:57 +08:00
|
|
|
config AMX3_PM
|
|
|
|
tristate "AMx3 Power Management"
|
|
|
|
depends on SOC_AM33XX || SOC_AM43XX
|
2019-04-03 12:57:42 +08:00
|
|
|
depends on WKUP_M3_IPC && TI_EMIF_SRAM && SRAM && RTC_DRV_OMAP
|
2018-02-23 23:43:57 +08:00
|
|
|
help
|
|
|
|
Enable power management on AM335x and AM437x. Required for suspend to mem
|
|
|
|
and standby states on both AM335x and AM437x platforms and for deeper cpuidle
|
2019-04-03 12:57:42 +08:00
|
|
|
c-states on AM335x. Also required for rtc and ddr in self-refresh low
|
|
|
|
power mode on AM437x platforms.
|
2018-02-23 23:43:57 +08:00
|
|
|
|
2015-09-23 08:14:54 +08:00
|
|
|
config WKUP_M3_IPC
|
|
|
|
tristate "TI AMx3 Wkup-M3 IPC Driver"
|
|
|
|
depends on WKUP_M3_RPROC
|
|
|
|
depends on OMAP2PLUS_MBOX
|
|
|
|
help
|
|
|
|
TI AM33XX and AM43XX have a Cortex M3, the Wakeup M3, to handle
|
|
|
|
low power transitions. This IPC driver provides the necessary API
|
|
|
|
to communicate and use the Wakeup M3 for PM features like suspend
|
|
|
|
resume and boots it using wkup_m3_rproc driver.
|
|
|
|
|
2017-04-04 23:59:27 +08:00
|
|
|
config TI_SCI_PM_DOMAINS
|
|
|
|
tristate "TI SCI PM Domains Driver"
|
|
|
|
depends on TI_SCI_PROTOCOL
|
|
|
|
depends on PM_GENERIC_DOMAINS
|
|
|
|
help
|
|
|
|
Generic power domain implementation for TI device implementing
|
|
|
|
the TI SCI protocol.
|
|
|
|
|
|
|
|
To compile this as a module, choose M here. The module will be
|
|
|
|
called ti_sci_pm_domains. Note this is needed early in boot before
|
|
|
|
rootfs may be available.
|
|
|
|
|
2020-01-16 02:07:27 +08:00
|
|
|
config TI_K3_RINGACC
|
|
|
|
bool "K3 Ring accelerator Sub System"
|
|
|
|
depends on ARCH_K3 || COMPILE_TEST
|
|
|
|
depends on TI_SCI_INTA_IRQCHIP
|
|
|
|
help
|
|
|
|
Say y here to support the K3 Ring accelerator module.
|
|
|
|
The Ring Accelerator (RINGACC or RA) provides hardware acceleration
|
|
|
|
to enable straightforward passing of work between a producer
|
|
|
|
and a consumer. There is one RINGACC module per NAVSS on TI AM65x SoCs
|
|
|
|
If unsure, say N.
|
|
|
|
|
2020-05-28 11:39:14 +08:00
|
|
|
config TI_K3_SOCINFO
|
|
|
|
bool
|
|
|
|
depends on ARCH_K3 || COMPILE_TEST
|
|
|
|
select SOC_BUS
|
|
|
|
select MFD_SYSCON
|
|
|
|
help
|
|
|
|
Include support for the SoC bus socinfo for the TI K3 Multicore SoC
|
|
|
|
platforms to provide information about the SoC family and
|
|
|
|
variant to user space.
|
|
|
|
|
soc: ti: pruss: Add a platform driver for PRUSS in TI SoCs
The Programmable Real-Time Unit - Industrial Communication
Subsystem (PRU-ICSS) is present on various TI SoCs such as
AM335x or AM437x or the Keystone 66AK2G. Each SoC can have
one or more PRUSS instances that may or may not be identical.
For example, AM335x SoCs have a single PRUSS, while AM437x has
two PRUSS instances PRUSS1 and PRUSS0, with the PRUSS0 being
a cut-down version of the PRUSS1.
The PRUSS consists of dual 32-bit RISC cores called the
Programmable Real-Time Units (PRUs), some shared, data and
instruction memories, some internal peripheral modules, and
an interrupt controller. The programmable nature of the PRUs
provide flexibility to implement custom peripheral interfaces,
fast real-time responses, or specialized data handling.
The PRU-ICSS functionality is achieved through three different
platform drivers addressing a specific portion of the PRUSS.
Some sub-modules of the PRU-ICSS IP reuse some of the existing
drivers (like davinci mdio driver or the generic syscon driver).
This design provides flexibility in representing the different
modules of PRUSS accordingly, and at the same time allowing the
PRUSS driver to add some instance specific configuration within
an SoC.
The PRUSS platform driver deals with the overall PRUSS and is
used for managing the subsystem level resources like various
memories and the CFG module. It is responsible for the creation
and deletion of the platform devices for the child PRU devices
and other child devices (like Interrupt Controller, MDIO node
and some syscon nodes) so that they can be managed by specific
platform drivers. The PRUSS interrupt controller is managed by
an irqchip driver, while the individual PRU RISC cores are
managed by a PRU remoteproc driver.
The driver currently supports the AM335x SoC, and support for
other TI SoCs will be added in subsequent patches.
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Grzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
2020-09-12 12:43:34 +08:00
|
|
|
config TI_PRUSS
|
|
|
|
tristate "TI PRU-ICSS Subsystem Platform drivers"
|
2020-09-12 12:43:36 +08:00
|
|
|
depends on SOC_AM33XX || SOC_AM43XX || SOC_DRA7XX || ARCH_KEYSTONE || ARCH_K3
|
soc: ti: pruss: Add a platform driver for PRUSS in TI SoCs
The Programmable Real-Time Unit - Industrial Communication
Subsystem (PRU-ICSS) is present on various TI SoCs such as
AM335x or AM437x or the Keystone 66AK2G. Each SoC can have
one or more PRUSS instances that may or may not be identical.
For example, AM335x SoCs have a single PRUSS, while AM437x has
two PRUSS instances PRUSS1 and PRUSS0, with the PRUSS0 being
a cut-down version of the PRUSS1.
The PRUSS consists of dual 32-bit RISC cores called the
Programmable Real-Time Units (PRUs), some shared, data and
instruction memories, some internal peripheral modules, and
an interrupt controller. The programmable nature of the PRUs
provide flexibility to implement custom peripheral interfaces,
fast real-time responses, or specialized data handling.
The PRU-ICSS functionality is achieved through three different
platform drivers addressing a specific portion of the PRUSS.
Some sub-modules of the PRU-ICSS IP reuse some of the existing
drivers (like davinci mdio driver or the generic syscon driver).
This design provides flexibility in representing the different
modules of PRUSS accordingly, and at the same time allowing the
PRUSS driver to add some instance specific configuration within
an SoC.
The PRUSS platform driver deals with the overall PRUSS and is
used for managing the subsystem level resources like various
memories and the CFG module. It is responsible for the creation
and deletion of the platform devices for the child PRU devices
and other child devices (like Interrupt Controller, MDIO node
and some syscon nodes) so that they can be managed by specific
platform drivers. The PRUSS interrupt controller is managed by
an irqchip driver, while the individual PRU RISC cores are
managed by a PRU remoteproc driver.
The driver currently supports the AM335x SoC, and support for
other TI SoCs will be added in subsequent patches.
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Grzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
2020-09-12 12:43:34 +08:00
|
|
|
select MFD_SYSCON
|
|
|
|
help
|
|
|
|
TI PRU-ICSS Subsystem platform specific support.
|
|
|
|
|
|
|
|
Say Y or M here to support the Programmable Realtime Unit (PRU)
|
|
|
|
processors on various TI SoCs. It's safe to say N here if you're
|
|
|
|
not interested in the PRU or if you are unsure.
|
|
|
|
|
2019-06-17 21:01:05 +08:00
|
|
|
endif # SOC_TI
|
|
|
|
|
2019-04-30 18:12:28 +08:00
|
|
|
config TI_SCI_INTA_MSI_DOMAIN
|
|
|
|
bool
|
|
|
|
select GENERIC_MSI_IRQ_DOMAIN
|
|
|
|
help
|
|
|
|
Driver to enable Interrupt Aggregator specific MSI Domain.
|