# 64-bit ARM SoCs from TI
if ARM64

if ARCH_K3

config ARCH_K3_AM6_SOC
	bool "K3 AM6 SoC"
	help
	  Enable support for TI's AM6 SoC Family support

endif

endif

#
# 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.

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.

config AMX3_PM
	tristate "AMx3 Power Management"
	depends on SOC_AM33XX || SOC_AM43XX
	depends on WKUP_M3_IPC && TI_EMIF_SRAM && SRAM
	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
	  c-states on AM335x.

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.

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.

endif # SOC_TI
