mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
ARM: OMAP2+: l3-noc: Add support for device-tree
Add device-tree support for the l3-noc driver. Use platform_driver_register to defer the probing at device init time. Add documentation for the l3-noc bindings. Signed-off-by: Benoit Cousson <b-cousson@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
This commit is contained in:
parent
a7cbb9b15d
commit
d039c5b9fb
19
Documentation/devicetree/bindings/arm/omap/l3-noc.txt
Normal file
19
Documentation/devicetree/bindings/arm/omap/l3-noc.txt
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
* TI - L3 Network On Chip (NoC)
|
||||||
|
|
||||||
|
This version is an implementation of the generic NoC IP
|
||||||
|
provided by Arteris.
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : Should be "ti,omap3-l3-smx" for OMAP3 family
|
||||||
|
Should be "ti,omap4-l3-noc" for OMAP4 family
|
||||||
|
- ti,hwmods: "l3_main_1", ... One hwmod for each noc domain.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
ocp {
|
||||||
|
compatible = "ti,omap4-l3-noc", "simple-bus";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
|
||||||
|
};
|
@ -127,7 +127,7 @@ static irqreturn_t l3_interrupt_handler(int irq, void *_l3)
|
|||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init omap4_l3_probe(struct platform_device *pdev)
|
static int __devinit omap4_l3_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
static struct omap4_l3 *l3;
|
static struct omap4_l3 *l3;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
@ -218,7 +218,7 @@ err0:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __exit omap4_l3_remove(struct platform_device *pdev)
|
static int __devexit omap4_l3_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct omap4_l3 *l3 = platform_get_drvdata(pdev);
|
struct omap4_l3 *l3 = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
@ -232,16 +232,29 @@ static int __exit omap4_l3_remove(struct platform_device *pdev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(CONFIG_OF)
|
||||||
|
static const struct of_device_id l3_noc_match[] = {
|
||||||
|
{.compatible = "ti,omap4-l3-noc", },
|
||||||
|
{},
|
||||||
|
}
|
||||||
|
MODULE_DEVICE_TABLE(of, l3_noc_match);
|
||||||
|
#else
|
||||||
|
#define l3_noc_match NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct platform_driver omap4_l3_driver = {
|
static struct platform_driver omap4_l3_driver = {
|
||||||
.remove = __exit_p(omap4_l3_remove),
|
.probe = omap4_l3_probe,
|
||||||
.driver = {
|
.remove = __devexit_p(omap4_l3_remove),
|
||||||
.name = "omap_l3_noc",
|
.driver = {
|
||||||
|
.name = "omap_l3_noc",
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
.of_match_table = l3_noc_match,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init omap4_l3_init(void)
|
static int __init omap4_l3_init(void)
|
||||||
{
|
{
|
||||||
return platform_driver_probe(&omap4_l3_driver, omap4_l3_probe);
|
return platform_driver_register(&omap4_l3_driver);
|
||||||
}
|
}
|
||||||
postcore_initcall_sync(omap4_l3_init);
|
postcore_initcall_sync(omap4_l3_init);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user