Message ID | 1542886753-17625-15-git-send-email-rogerq@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for TI PRU ICSS | expand |
* Roger Quadros <rogerq@ti.com> [181122 11:40]: > From: Suman Anna <s-anna@ti.com> > > The omap_device API is needed to perform the reset management for > any IP instances with PRCM RSTCTRL registers (hard reset lines). > This API is limited to the mach-omap2 layer, and cannot be exposed > to drivers layer directly. So use platform data ops and pdata quirks > for the PRUSS IP in AM335x SoCs to plumb the required omap_device > API. The PRUSS SoC bus driver can then use these pdata ops to > achieve the required reset functionality. > > This is being implemented this way as there is no separate reset > driver at the moment. If the reset-simple approach has issues we can certainly do this until the issues are fixed. I believe Suman had an issue where we need to prevent the related clockdomain from idling. Regards, Tony
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 9fec5f8..97fc5a2 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c @@ -26,6 +26,7 @@ #include <linux/platform_data/hsmmc-omap.h> #include <linux/platform_data/iommu-omap.h> #include <linux/platform_data/ti-sysc.h> +#include <linux/platform_data/ti-pruss.h> #include <linux/platform_data/wkup_m3.h> #include <linux/platform_data/asoc-ti-mcbsp.h> @@ -438,6 +439,14 @@ static struct wkup_m3_platform_data wkup_m3_data = { }; #endif +#ifdef CONFIG_SOC_AM33XX +static struct pruss_platform_data pruss_pdata = { + .reset_name = "pruss", + .assert_reset = omap_device_assert_hardreset, + .deassert_reset = omap_device_deassert_hardreset, +}; +#endif + #ifdef CONFIG_SOC_OMAP5 static void __init omap5_uevm_legacy_init(void) { @@ -580,6 +589,8 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = { #ifdef CONFIG_SOC_AM33XX OF_DEV_AUXDATA("ti,am3352-wkup-m3", 0x44d00000, "44d00000.wkup_m3", &wkup_m3_data), + OF_DEV_AUXDATA("ti,am3356-pruss-soc-bus", 0x4a326004, + "4a326004.pruss-soc-bus", &pruss_pdata), #endif #ifdef CONFIG_SOC_AM43XX OF_DEV_AUXDATA("ti,am4372-wkup-m3", 0x44d00000, "44d00000.wkup_m3",