Bläddra i källkod

soc: ti: pruss: Enable support for ICSSG subsystems on K3 J721E SoCs

The K3 J721E family of SoCs have a revised version of the PRU-ICSS (ICSSG)
processor subsystem present on K3 AM65x SoCs. These SoCs contain typically
two ICSSG instances named ICSSG0 and ICSSG1. The two ICSSGs are identical
to each other for the most part with minor SoC integration differences and
capabilities. The ICSSG1 supports slightly enhanced features like SGMII
mode Ethernet, while the ICSSG0 instance is limited to MII mode only.

The ICSSGs on K3 J721E SoCs have two new additional auxiliary PRU cores
called Tx_PRUs in addition to the PRU and RTU cores present within the
K3 AM65x ICSSG instances. There is no change in the Interrupt Controller
w.r.t AM65x. All other integration aspects are very similar to the ICSSGs
on AM65x SoCs.

The existing pruss_soc_bus and pruss platform drivers have been updated to
support these new ICSSG instances through new J721E specific compatibles.

Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
Suman Anna 6 år sedan
förälder
incheckning
6c32498431
2 ändrade filer med 4 tillägg och 1 borttagningar
  1. 3 1
      drivers/soc/ti/pruss.c
  2. 1 0
      drivers/soc/ti/pruss_soc_bus.c

+ 3 - 1
drivers/soc/ti/pruss.c

@@ -363,7 +363,8 @@ static int pruss_probe(struct platform_device *pdev)
 	if (!pruss->cfg_base)
 		return -ENOMEM;
 
-	if (!of_device_is_compatible(pdev->dev.of_node, "ti,am654-icssg"))
+	if (!of_device_is_compatible(pdev->dev.of_node, "ti,am654-icssg") &&
+	    !of_device_is_compatible(pdev->dev.of_node, "ti,j721e-icssg"))
 		goto skip_mux;
 
 	ret = pruss_clk_mux_setup(pruss, pruss->core_clk_mux, "coreclk_mux",
@@ -478,6 +479,7 @@ static const struct of_device_id pruss_of_match[] = {
 	{ .compatible = "ti,am5728-pruss", .data = NULL, },
 	{ .compatible = "ti,k2g-pruss", .data = NULL, },
 	{ .compatible = "ti,am654-icssg", .data = NULL, },
+	{ .compatible = "ti,j721e-icssg", .data = NULL, },
 	{ /* sentinel */ },
 };
 MODULE_DEVICE_TABLE(of, pruss_of_match);

+ 1 - 0
drivers/soc/ti/pruss_soc_bus.c

@@ -291,6 +291,7 @@ static const struct of_device_id pruss_soc_bus_of_match[] = {
 	{ .compatible = "ti,am5728-pruss-soc-bus", .data = &am57xx_data, },
 	{ .compatible = "ti,k2g-pruss-soc-bus", .data = &k2g_data, },
 	{ .compatible = "ti,am654-icssg-soc-bus", .data = &k2g_data, },
+	{ .compatible = "ti,j721e-icssg-soc-bus", .data = &k2g_data, },
 	{ /* sentinel */ },
 };
 MODULE_DEVICE_TABLE(of, pruss_soc_bus_of_match);