TI SoC driver updates for v6.6
- Generic fixups: Explicitly include correct DT include. - omap_prm: Cosmetic fixups for using devm_ api for ioremap_resource - ti_sci: Documentation fixups, Using system_state to determine if polling is needed. - k3-ringcc: Documentation fixups, cleanup of log messages, using devm_ to handle ioremap_resource. - k3-socinfo: Add AM62PX detection. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmTaSAgACgkQ3bWEnRc2 JJ2bHhAArQBIlE2hSKOhQp2voNiSywrs94YOrrFKX+rb4DZFPUt3PtqMut8N86oS Hq8HeztxyCL5Lsi5p4eqi4DICAT6cdLqLQu4o1Nk8G+/1xC9bUSMxxDAvp9WqcKe VRjSnDrO5USU/FSQh2OVtBzYYqeNtrXtHIhih/XurH2C0RMev27RIMg2IeMq1ZBg OqerwxoV9FdjnUB74RrLhWPehSMGO3P7x2rwS8EndZ7CbQekHyhWDNW7SrIyvfre X5GpdRjOT4eCEKpEVvDoHPZZkwvGSYtXEuRKq0W3faCv+uHL3CAvWVuYWwZvYUUK SbJfJb/j94U24B75MynOSLYYyzDVwz1vvrfKeA+ZS+v/T1HqOPVHyCR8rff+fvBa jbk950oMwqJdRJ0wyrtlhQXCzXJ+8kVG5VOYW8eef0bMUsqVt/r+40V3imyVmn3E SqYisWOXUSZBgMdUiQwCw6+ZNeZEeBwT7328y+tpLBbNtp5psDLH9NWii79f0JiL Gy8hbYAzVnozLYd0Z0IHueQ7zTHJ/GLR1NphArwlj9nL9ZOlxWibADMdyc0rsp8h RSxTmbxY8/wwh+8wqgAoafzxeigL4Aer6KOb3xpbVqxUTx8aq9Bh0Jg6izhZCSrj cd2TQuamXE8lIKpmQfsHIlaTpP/YelSOSZgMpIHwnUJzEaGYHvA= =vMl/ -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmTaVbMACgkQYKtH/8kJ Uid/Sw//ar4Qf8XWgGThf08hP2Xv6fQEHwNiCOxP6+Jozfr8cKW3nX/ZXLSoGfC3 fSThkm8Nny2b45cZax03JSaBOkFZMxBshISVkl9mUSelEGPMIfQejx+P1xQVW+V4 50NbxE62Ezs6NPpF6yIOE8OYURZyMNUNioiKy6j3mlIPCVHuLixPdh1192SfHg8N GyIE6SEPA29j0rr8OwyXTIIct2ol0UStvrK8zx4Qmp14P+XbxMZI6YMNHXDJPy3i l/0HqSS0hFWCiLq8pa/Fl03QWfqDTYBSiBn2onYuMSg6msQgIkH6IPEA2NfY5itJ AFutvTH4YtUdfyGGac+zchtcVQHUDm2oJQxMHBpluU8695DWNWmqw7/ttP9gCwtk x2qtnwgu+k0C+fLWjMhv/hCg1tfB4j4aVZxAL9WKKpV4S4E7oWf8KCOJ8bn1DWUI slLKTVPSYSs4D9+66imjBYRF7tNqk+LDVYuRMQPW3bUFMRRIsK0ZVLBdYxC9w9Yj jFHeKvDmeMhCHjIB8pDC7626J7lTndHF0uRVLA591IYaRd3z8Oh4MCv0BsIVExPH 31FPoEKIrhv6sQyShF6fYcO4V4I46rLaXszq+uRPOcucRrNQpQwIEa5DUJtr23ha n05PtlaOniNS7O2a2J9/kgyBupQCoO1IMS089IvLB/9wEaqV7j8= =wz6q -----END PGP SIGNATURE----- Merge tag 'ti-driver-soc-for-v6.6' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/drivers TI SoC driver updates for v6.6 - Generic fixups: Explicitly include correct DT include. - omap_prm: Cosmetic fixups for using devm_ api for ioremap_resource - ti_sci: Documentation fixups, Using system_state to determine if polling is needed. - k3-ringcc: Documentation fixups, cleanup of log messages, using devm_ to handle ioremap_resource. - k3-socinfo: Add AM62PX detection. * tag 'ti-driver-soc-for-v6.6' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux: soc: ti: k3-socinfo.c: Add JTAG ID for AM62PX soc: ti: Use devm_platform_ioremap_resource_byname simplify logic soc: ti: k3-ringacc: remove non-fatal probe deferral log soc: ti: Explicitly include correct DT includes soc: ti: omap-prm: Use devm_platform_get_and_ioremap_resource() soc: ti: k3-ringacc: Fixup documentation errors firmware: ti_sci: Fixup documentation errors firmware: ti_sci: Use system_state to determine polling Link: https://lore.kernel.org/r/20230814160633.my3xbk5k2pxkvjyi@degrease Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
93e0acaec3
@ -97,7 +97,6 @@ struct ti_sci_desc {
|
|||||||
* @node: list head
|
* @node: list head
|
||||||
* @host_id: Host ID
|
* @host_id: Host ID
|
||||||
* @users: Number of users of this instance
|
* @users: Number of users of this instance
|
||||||
* @is_suspending: Flag set to indicate in suspend path.
|
|
||||||
*/
|
*/
|
||||||
struct ti_sci_info {
|
struct ti_sci_info {
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
@ -116,7 +115,6 @@ struct ti_sci_info {
|
|||||||
u8 host_id;
|
u8 host_id;
|
||||||
/* protected by ti_sci_list_mutex */
|
/* protected by ti_sci_list_mutex */
|
||||||
int users;
|
int users;
|
||||||
bool is_suspending;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define cl_to_ti_sci_info(c) container_of(c, struct ti_sci_info, cl)
|
#define cl_to_ti_sci_info(c) container_of(c, struct ti_sci_info, cl)
|
||||||
@ -418,14 +416,14 @@ static inline int ti_sci_do_xfer(struct ti_sci_info *info,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
if (!info->is_suspending) {
|
if (system_state <= SYSTEM_RUNNING) {
|
||||||
/* And we wait for the response. */
|
/* And we wait for the response. */
|
||||||
timeout = msecs_to_jiffies(info->desc->max_rx_timeout_ms);
|
timeout = msecs_to_jiffies(info->desc->max_rx_timeout_ms);
|
||||||
if (!wait_for_completion_timeout(&xfer->done, timeout))
|
if (!wait_for_completion_timeout(&xfer->done, timeout))
|
||||||
ret = -ETIMEDOUT;
|
ret = -ETIMEDOUT;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* If we are suspending, we cannot use wait_for_completion_timeout
|
* If we are !running, we cannot use wait_for_completion_timeout
|
||||||
* during noirq phase, so we must manually poll the completion.
|
* during noirq phase, so we must manually poll the completion.
|
||||||
*/
|
*/
|
||||||
ret = read_poll_timeout_atomic(try_wait_for_completion, done_state,
|
ret = read_poll_timeout_atomic(try_wait_for_completion, done_state,
|
||||||
@ -1978,8 +1976,6 @@ static int ti_sci_free_irq(const struct ti_sci_handle *handle, u32 valid_params,
|
|||||||
* @src_index: IRQ source index within the source device
|
* @src_index: IRQ source index within the source device
|
||||||
* @dst_id: Device ID of the IRQ destination
|
* @dst_id: Device ID of the IRQ destination
|
||||||
* @dst_host_irq: IRQ number of the destination device
|
* @dst_host_irq: IRQ number of the destination device
|
||||||
* @vint_irq: Boolean specifying if this interrupt belongs to
|
|
||||||
* Interrupt Aggregator.
|
|
||||||
*
|
*
|
||||||
* Return: 0 if all went fine, else return appropriate error.
|
* Return: 0 if all went fine, else return appropriate error.
|
||||||
*/
|
*/
|
||||||
@ -2026,8 +2022,6 @@ static int ti_sci_cmd_set_event_map(const struct ti_sci_handle *handle,
|
|||||||
* @src_index: IRQ source index within the source device
|
* @src_index: IRQ source index within the source device
|
||||||
* @dst_id: Device ID of the IRQ destination
|
* @dst_id: Device ID of the IRQ destination
|
||||||
* @dst_host_irq: IRQ number of the destination device
|
* @dst_host_irq: IRQ number of the destination device
|
||||||
* @vint_irq: Boolean specifying if this interrupt belongs to
|
|
||||||
* Interrupt Aggregator.
|
|
||||||
*
|
*
|
||||||
* Return: 0 if all went fine, else return appropriate error.
|
* Return: 0 if all went fine, else return appropriate error.
|
||||||
*/
|
*/
|
||||||
@ -2620,6 +2614,7 @@ fail:
|
|||||||
* configuration flags
|
* configuration flags
|
||||||
* @handle: Pointer to TI SCI handle
|
* @handle: Pointer to TI SCI handle
|
||||||
* @proc_id: Processor ID this request is for
|
* @proc_id: Processor ID this request is for
|
||||||
|
* @bootvector: Processor Boot vector (start address)
|
||||||
* @config_flags_set: Configuration flags to be set
|
* @config_flags_set: Configuration flags to be set
|
||||||
* @config_flags_clear: Configuration flags to be cleared.
|
* @config_flags_clear: Configuration flags to be cleared.
|
||||||
*
|
*
|
||||||
@ -2736,9 +2731,13 @@ fail:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ti_sci_cmd_get_boot_status() - Command to get the processor boot status
|
* ti_sci_cmd_proc_get_status() - Command to get the processor boot status
|
||||||
* @handle: Pointer to TI SCI handle
|
* @handle: Pointer to TI SCI handle
|
||||||
* @proc_id: Processor ID this request is for
|
* @proc_id: Processor ID this request is for
|
||||||
|
* @bv: Processor Boot vector (start address)
|
||||||
|
* @cfg_flags: Processor specific configuration flags
|
||||||
|
* @ctrl_flags: Processor specific control flags
|
||||||
|
* @sts_flags: Processor specific status flags
|
||||||
*
|
*
|
||||||
* Return: 0 if all went well, else returns appropriate error value.
|
* Return: 0 if all went well, else returns appropriate error value.
|
||||||
*/
|
*/
|
||||||
@ -3256,7 +3255,7 @@ EXPORT_SYMBOL_GPL(devm_ti_sci_get_of_resource);
|
|||||||
* @handle: TISCI handle
|
* @handle: TISCI handle
|
||||||
* @dev: Device pointer to which the resource is assigned
|
* @dev: Device pointer to which the resource is assigned
|
||||||
* @dev_id: TISCI device id to which the resource is assigned
|
* @dev_id: TISCI device id to which the resource is assigned
|
||||||
* @suub_type: TISCI resource subytpe representing the resource.
|
* @sub_type: TISCI resource subytpe representing the resource.
|
||||||
*
|
*
|
||||||
* Return: Pointer to ti_sci_resource if all went well else appropriate
|
* Return: Pointer to ti_sci_resource if all went well else appropriate
|
||||||
* error pointer.
|
* error pointer.
|
||||||
@ -3281,35 +3280,6 @@ static int tisci_reboot_handler(struct notifier_block *nb, unsigned long mode,
|
|||||||
return NOTIFY_BAD;
|
return NOTIFY_BAD;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ti_sci_set_is_suspending(struct ti_sci_info *info, bool is_suspending)
|
|
||||||
{
|
|
||||||
info->is_suspending = is_suspending;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int ti_sci_suspend(struct device *dev)
|
|
||||||
{
|
|
||||||
struct ti_sci_info *info = dev_get_drvdata(dev);
|
|
||||||
/*
|
|
||||||
* We must switch operation to polled mode now as drivers and the genpd
|
|
||||||
* layer may make late TI SCI calls to change clock and device states
|
|
||||||
* from the noirq phase of suspend.
|
|
||||||
*/
|
|
||||||
ti_sci_set_is_suspending(info, true);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int ti_sci_resume(struct device *dev)
|
|
||||||
{
|
|
||||||
struct ti_sci_info *info = dev_get_drvdata(dev);
|
|
||||||
|
|
||||||
ti_sci_set_is_suspending(info, false);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static DEFINE_SIMPLE_DEV_PM_OPS(ti_sci_pm_ops, ti_sci_suspend, ti_sci_resume);
|
|
||||||
|
|
||||||
/* Description for K2G */
|
/* Description for K2G */
|
||||||
static const struct ti_sci_desc ti_sci_pmmc_k2g_desc = {
|
static const struct ti_sci_desc ti_sci_pmmc_k2g_desc = {
|
||||||
.default_host_id = 2,
|
.default_host_id = 2,
|
||||||
@ -3516,7 +3486,6 @@ static struct platform_driver ti_sci_driver = {
|
|||||||
.driver = {
|
.driver = {
|
||||||
.name = "ti-sci",
|
.name = "ti-sci",
|
||||||
.of_match_table = of_match_ptr(ti_sci_of_match),
|
.of_match_table = of_match_ptr(ti_sci_of_match),
|
||||||
.pm = &ti_sci_pm_ops,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
module_platform_driver(ti_sci_driver);
|
module_platform_driver(ti_sci_driver);
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
#include <linux/iopoll.h>
|
#include <linux/iopoll.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/of_device.h>
|
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/pm_clock.h>
|
#include <linux/pm_clock.h>
|
||||||
#include <linux/pm_domain.h>
|
#include <linux/pm_domain.h>
|
||||||
@ -943,10 +942,6 @@ static int omap_prm_probe(struct platform_device *pdev)
|
|||||||
struct omap_prm *prm;
|
struct omap_prm *prm;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
||||||
if (!res)
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
data = of_device_get_match_data(&pdev->dev);
|
data = of_device_get_match_data(&pdev->dev);
|
||||||
if (!data)
|
if (!data)
|
||||||
return -ENOTSUPP;
|
return -ENOTSUPP;
|
||||||
@ -955,6 +950,10 @@ static int omap_prm_probe(struct platform_device *pdev)
|
|||||||
if (!prm)
|
if (!prm)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
prm->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
|
||||||
|
if (IS_ERR(prm->base))
|
||||||
|
return PTR_ERR(prm->base);
|
||||||
|
|
||||||
while (data->base != res->start) {
|
while (data->base != res->start) {
|
||||||
if (!data->base)
|
if (!data->base)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -963,10 +962,6 @@ static int omap_prm_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
prm->data = data;
|
prm->data = data;
|
||||||
|
|
||||||
prm->base = devm_ioremap_resource(&pdev->dev, res);
|
|
||||||
if (IS_ERR(prm->base))
|
|
||||||
return PTR_ERR(prm->base);
|
|
||||||
|
|
||||||
ret = omap_prm_domain_init(&pdev->dev, prm);
|
ret = omap_prm_domain_init(&pdev->dev, prm);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/of_device.h>
|
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/sys_soc.h>
|
#include <linux/sys_soc.h>
|
||||||
#include <linux/dma/ti-cppi5.h>
|
#include <linux/dma/ti-cppi5.h>
|
||||||
@ -125,6 +124,7 @@ struct k3_ring_ops {
|
|||||||
* @occ: Occupancy
|
* @occ: Occupancy
|
||||||
* @windex: Write index
|
* @windex: Write index
|
||||||
* @rindex: Read index
|
* @rindex: Read index
|
||||||
|
* @tdown_complete: Tear down complete state
|
||||||
*/
|
*/
|
||||||
struct k3_ring_state {
|
struct k3_ring_state {
|
||||||
u32 free;
|
u32 free;
|
||||||
@ -192,7 +192,7 @@ struct k3_ringacc_ops {
|
|||||||
* @num_rings: number of ring in RA
|
* @num_rings: number of ring in RA
|
||||||
* @rings_inuse: bitfield for ring usage tracking
|
* @rings_inuse: bitfield for ring usage tracking
|
||||||
* @rm_gp_range: general purpose rings range from tisci
|
* @rm_gp_range: general purpose rings range from tisci
|
||||||
* @dma_ring_reset_quirk: DMA reset w/a enable
|
* @dma_ring_reset_quirk: DMA reset workaround enable
|
||||||
* @num_proxies: number of RA proxies
|
* @num_proxies: number of RA proxies
|
||||||
* @proxy_inuse: bitfield for proxy usage tracking
|
* @proxy_inuse: bitfield for proxy usage tracking
|
||||||
* @rings: array of rings descriptors (struct @k3_ring)
|
* @rings: array of rings descriptors (struct @k3_ring)
|
||||||
@ -229,9 +229,9 @@ struct k3_ringacc {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct k3_ringacc - Rings accelerator SoC data
|
* struct k3_ringacc_soc_data - Rings accelerator SoC data
|
||||||
*
|
*
|
||||||
* @dma_ring_reset_quirk: DMA reset w/a enable
|
* @dma_ring_reset_quirk: DMA reset workaround enable
|
||||||
*/
|
*/
|
||||||
struct k3_ringacc_soc_data {
|
struct k3_ringacc_soc_data {
|
||||||
unsigned dma_ring_reset_quirk:1;
|
unsigned dma_ring_reset_quirk:1;
|
||||||
@ -1368,15 +1368,12 @@ static int k3_ringacc_init(struct platform_device *pdev,
|
|||||||
const struct soc_device_attribute *soc;
|
const struct soc_device_attribute *soc;
|
||||||
void __iomem *base_fifo, *base_rt;
|
void __iomem *base_fifo, *base_rt;
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
struct resource *res;
|
|
||||||
int ret, i;
|
int ret, i;
|
||||||
|
|
||||||
dev->msi.domain = of_msi_get_domain(dev, dev->of_node,
|
dev->msi.domain = of_msi_get_domain(dev, dev->of_node,
|
||||||
DOMAIN_BUS_TI_SCI_INTA_MSI);
|
DOMAIN_BUS_TI_SCI_INTA_MSI);
|
||||||
if (!dev->msi.domain) {
|
if (!dev->msi.domain)
|
||||||
dev_err(dev, "Failed to get MSI domain\n");
|
|
||||||
return -EPROBE_DEFER;
|
return -EPROBE_DEFER;
|
||||||
}
|
|
||||||
|
|
||||||
ret = k3_ringacc_probe_dt(ringacc);
|
ret = k3_ringacc_probe_dt(ringacc);
|
||||||
if (ret)
|
if (ret)
|
||||||
@ -1389,24 +1386,20 @@ static int k3_ringacc_init(struct platform_device *pdev,
|
|||||||
ringacc->dma_ring_reset_quirk = soc_data->dma_ring_reset_quirk;
|
ringacc->dma_ring_reset_quirk = soc_data->dma_ring_reset_quirk;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rt");
|
base_rt = devm_platform_ioremap_resource_byname(pdev, "rt");
|
||||||
base_rt = devm_ioremap_resource(dev, res);
|
|
||||||
if (IS_ERR(base_rt))
|
if (IS_ERR(base_rt))
|
||||||
return PTR_ERR(base_rt);
|
return PTR_ERR(base_rt);
|
||||||
|
|
||||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fifos");
|
base_fifo = devm_platform_ioremap_resource_byname(pdev, "fifos");
|
||||||
base_fifo = devm_ioremap_resource(dev, res);
|
|
||||||
if (IS_ERR(base_fifo))
|
if (IS_ERR(base_fifo))
|
||||||
return PTR_ERR(base_fifo);
|
return PTR_ERR(base_fifo);
|
||||||
|
|
||||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "proxy_gcfg");
|
ringacc->proxy_gcfg = devm_platform_ioremap_resource_byname(pdev, "proxy_gcfg");
|
||||||
ringacc->proxy_gcfg = devm_ioremap_resource(dev, res);
|
|
||||||
if (IS_ERR(ringacc->proxy_gcfg))
|
if (IS_ERR(ringacc->proxy_gcfg))
|
||||||
return PTR_ERR(ringacc->proxy_gcfg);
|
return PTR_ERR(ringacc->proxy_gcfg);
|
||||||
|
|
||||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
|
ringacc->proxy_target_base = devm_platform_ioremap_resource_byname(pdev,
|
||||||
"proxy_target");
|
"proxy_target");
|
||||||
ringacc->proxy_target_base = devm_ioremap_resource(dev, res);
|
|
||||||
if (IS_ERR(ringacc->proxy_target_base))
|
if (IS_ERR(ringacc->proxy_target_base))
|
||||||
return PTR_ERR(ringacc->proxy_target_base);
|
return PTR_ERR(ringacc->proxy_target_base);
|
||||||
|
|
||||||
@ -1473,7 +1466,6 @@ struct k3_ringacc *k3_ringacc_dmarings_init(struct platform_device *pdev,
|
|||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
struct k3_ringacc *ringacc;
|
struct k3_ringacc *ringacc;
|
||||||
void __iomem *base_rt;
|
void __iomem *base_rt;
|
||||||
struct resource *res;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ringacc = devm_kzalloc(dev, sizeof(*ringacc), GFP_KERNEL);
|
ringacc = devm_kzalloc(dev, sizeof(*ringacc), GFP_KERNEL);
|
||||||
@ -1488,8 +1480,7 @@ struct k3_ringacc *k3_ringacc_dmarings_init(struct platform_device *pdev,
|
|||||||
|
|
||||||
mutex_init(&ringacc->req_lock);
|
mutex_init(&ringacc->req_lock);
|
||||||
|
|
||||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ringrt");
|
base_rt = devm_platform_ioremap_resource_byname(pdev, "ringrt");
|
||||||
base_rt = devm_ioremap_resource(dev, res);
|
|
||||||
if (IS_ERR(base_rt))
|
if (IS_ERR(base_rt))
|
||||||
return ERR_CAST(base_rt);
|
return ERR_CAST(base_rt);
|
||||||
|
|
||||||
|
@ -45,6 +45,7 @@ static const struct k3_soc_id {
|
|||||||
{ 0xBB7E, "AM62X" },
|
{ 0xBB7E, "AM62X" },
|
||||||
{ 0xBB80, "J784S4" },
|
{ 0xBB80, "J784S4" },
|
||||||
{ 0xBB8D, "AM62AX" },
|
{ 0xBB8D, "AM62AX" },
|
||||||
|
{ 0xBB9D, "AM62PX" },
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -14,8 +14,10 @@
|
|||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/mfd/syscon.h>
|
#include <linux/mfd/syscon.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
#include <linux/of.h>
|
||||||
#include <linux/of_address.h>
|
#include <linux/of_address.h>
|
||||||
#include <linux/of_device.h>
|
#include <linux/of_platform.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
#include <linux/pm_runtime.h>
|
#include <linux/pm_runtime.h>
|
||||||
#include <linux/pruss_driver.h>
|
#include <linux/pruss_driver.h>
|
||||||
#include <linux/regmap.h>
|
#include <linux/regmap.h>
|
||||||
|
@ -9,9 +9,10 @@
|
|||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/irqdomain.h>
|
#include <linux/irqdomain.h>
|
||||||
#include <linux/msi.h>
|
#include <linux/msi.h>
|
||||||
|
#include <linux/of.h>
|
||||||
#include <linux/of_address.h>
|
#include <linux/of_address.h>
|
||||||
#include <linux/of_device.h>
|
|
||||||
#include <linux/of_irq.h>
|
#include <linux/of_irq.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
#include <linux/soc/ti/ti_sci_inta_msi.h>
|
#include <linux/soc/ti/ti_sci_inta_msi.h>
|
||||||
#include <linux/soc/ti/ti_sci_protocol.h>
|
#include <linux/soc/ti/ti_sci_protocol.h>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user