Message ID | 20190828074627.682-1-t-kristo@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [PATCHv2] ARM: OMAP2+: pdata-quirks: add PRM data for reset support | expand |
Hi, * Tero Kristo <t-kristo@ti.com> [190828 07:47]: > +static struct ti_prm_platform_data ti_prm_pdata = { > + .clkdm_deny_idle = clkdm_deny_idle, > + .clkdm_allow_idle = clkdm_allow_idle, > + .clkdm_lookup = clkdm_lookup, > +}; > + > /* > * GPIOs for TWL are initialized by the I2C bus and need custom > * handing until DSS has device tree bindings. > @@ -664,6 +671,11 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = { > /* Common auxdata */ > OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata), > OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata), > + OF_DEV_AUXDATA("ti,omap4-prm-inst", 0, NULL, &ti_prm_pdata), > + OF_DEV_AUXDATA("ti,omap5-prm-inst", 0, NULL, &ti_prm_pdata), > + OF_DEV_AUXDATA("ti,dra7-prm-inst", 0, NULL, &ti_prm_pdata), > + OF_DEV_AUXDATA("ti,am3-prm-inst", 0, NULL, &ti_prm_pdata), > + OF_DEV_AUXDATA("ti,am4-prm-inst", 0, NULL, &ti_prm_pdata), > { /* sentinel */ }, > }; Since you're passing already generic clkdm data, you can make it generic with just a single line here: OF_DEV_AUXDATA("ti,prm-inst", 0, NULL, &ti_prm_pdata), Note that this means the dts compatible must have the additional "ti,prm-inst" for the auxdata to get passed. But that is more likely to work when we add support for other SoCs with just dts changes rather than having to manually patch in the auxdata here for each SoC. Regards, Tony
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 6c6f8fce854e..4730f8c0cb0e 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c @@ -25,6 +25,7 @@ #include <linux/platform_data/ti-sysc.h> #include <linux/platform_data/wkup_m3.h> #include <linux/platform_data/asoc-ti-mcbsp.h> +#include <linux/platform_data/ti-prm.h> #include "clockdomain.h" #include "common.h" @@ -565,6 +566,12 @@ void omap_pcs_legacy_init(int irq, void (*rearm)(void)) pcs_pdata.rearm = rearm; } +static struct ti_prm_platform_data ti_prm_pdata = { + .clkdm_deny_idle = clkdm_deny_idle, + .clkdm_allow_idle = clkdm_allow_idle, + .clkdm_lookup = clkdm_lookup, +}; + /* * GPIOs for TWL are initialized by the I2C bus and need custom * handing until DSS has device tree bindings. @@ -664,6 +671,11 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = { /* Common auxdata */ OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata), OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata), + OF_DEV_AUXDATA("ti,omap4-prm-inst", 0, NULL, &ti_prm_pdata), + OF_DEV_AUXDATA("ti,omap5-prm-inst", 0, NULL, &ti_prm_pdata), + OF_DEV_AUXDATA("ti,dra7-prm-inst", 0, NULL, &ti_prm_pdata), + OF_DEV_AUXDATA("ti,am3-prm-inst", 0, NULL, &ti_prm_pdata), + OF_DEV_AUXDATA("ti,am4-prm-inst", 0, NULL, &ti_prm_pdata), { /* sentinel */ }, };
The parent clockdomain for reset must be in force wakeup mode, otherwise the reset may never complete. Add pdata quirks for this purpose for PRM driver. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- Changes in v2: - split out from the main PRM series - added support for am4/omap5 Depends on the v2 PRM series: https://marc.info/?l=linux-omap&m=156697680731569&w=2 arch/arm/mach-omap2/pdata-quirks.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)