ti-sysc driver changes for omaps for v5.6 merge window
Few changes to implement quirk handling for cases where we need to block clockdomain autoidle, drop old MMU specific quirks, and simplify the return code for sysc_init_resets(). -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAl4grh4RHHRvbnlAYXRv bWlkZS5jb20ACgkQG9Q+yVyrpXOwsA//ajK8945jU3aLXu0XNV6xPei++PUh455C pUQuIlRNhBrn5w2Dz0L57TJ3dkPMyF+vaGbEUBoIlM+hh4kxSWn6cubE/8S3i1fD BJyMacYlV8E6RANag2z3IWeXq5d+9+70Uen48ipfBP9Py1aNwZy39jKThYIaQTVr YwXTQvwFKCLe1rufLvlpmg+qSXe+uJjPZJCtNEgbI6edi+DodunEaN04jPJn0Xds kjodel9mQdxCVGpQviYaXT/RvcrtJp6k0eVURWbRPjDGjYSeWckCQgZaiV8J8z6V cSR2PlRNo4KgbH9nNKw0vgiUnJLPBaE2jypafiTcmKsyrRmh9IeC+elI2iTc0hRo N8KrNOZXMxAhxcAFDeIdd+hjHMCa88tjorAvj1qHB8QkkmnKbpwHx8cm2MKrRal8 hIS8dfF5nidupnvrSGZx8ZWA0OrxSjBUDYJzDMEygCXr3BkmN0pwx5p5MRoZIFqD BtkHjQ62N4hcd6uVrbr1HOVT0Oe6M85dMGEwtNnl7fuaHfvpsfWPEU/M7bLA6OZs rKfVmI/fgaTLJ7Pr4/giGtP9cFpOZmQT4TVE2LP230/pBqlywGqFtm+d6ZYUeMaC ukzjCIcIIF8QpN2FVKj3hER4E+DuSOtNbBbZWL3uA4zTibU331pShIpLkoRVQw4A lFI839IVzSc= =2N9h -----END PGP SIGNATURE----- Merge tag 'omap-for-v5.6/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/drivers ti-sysc driver changes for omaps for v5.6 merge window Few changes to implement quirk handling for cases where we need to block clockdomain autoidle, drop old MMU specific quirks, and simplify the return code for sysc_init_resets(). * tag 'omap-for-v5.6/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: bus: ti-sysc: Use PTR_ERR_OR_ZERO() to simplify code bus: ti-sysc: Drop MMU quirks bus: ti-sysc: Implement quirk handling for CLKDM_NOAUTO Link: https://lore.kernel.org/r/pull-1579200367-372444@atomide.com-3 Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Коммит
061937296a
|
@ -473,7 +473,7 @@ static void sysc_clkdm_deny_idle(struct sysc *ddata)
|
|||
{
|
||||
struct ti_sysc_platform_data *pdata;
|
||||
|
||||
if (ddata->legacy_mode)
|
||||
if (ddata->legacy_mode || (ddata->cfg.quirks & SYSC_QUIRK_CLKDM_NOAUTO))
|
||||
return;
|
||||
|
||||
pdata = dev_get_platdata(ddata->dev);
|
||||
|
@ -485,7 +485,7 @@ static void sysc_clkdm_allow_idle(struct sysc *ddata)
|
|||
{
|
||||
struct ti_sysc_platform_data *pdata;
|
||||
|
||||
if (ddata->legacy_mode)
|
||||
if (ddata->legacy_mode || (ddata->cfg.quirks & SYSC_QUIRK_CLKDM_NOAUTO))
|
||||
return;
|
||||
|
||||
pdata = dev_get_platdata(ddata->dev);
|
||||
|
@ -503,10 +503,8 @@ static int sysc_init_resets(struct sysc *ddata)
|
|||
{
|
||||
ddata->rsts =
|
||||
devm_reset_control_get_optional_shared(ddata->dev, "rstctrl");
|
||||
if (IS_ERR(ddata->rsts))
|
||||
return PTR_ERR(ddata->rsts);
|
||||
|
||||
return 0;
|
||||
return PTR_ERR_OR_ZERO(ddata->rsts);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1210,10 +1208,6 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
|
|||
/* These drivers need to be fixed to not use pm_runtime_irq_safe() */
|
||||
SYSC_QUIRK("gpio", 0, 0, 0x10, 0x114, 0x50600801, 0xffff00ff,
|
||||
SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_OPT_CLKS_IN_RESET),
|
||||
SYSC_QUIRK("mmu", 0, 0, 0x10, 0x14, 0x00000020, 0xffffffff,
|
||||
SYSC_QUIRK_LEGACY_IDLE),
|
||||
SYSC_QUIRK("mmu", 0, 0, 0x10, 0x14, 0x00000030, 0xffffffff,
|
||||
SYSC_QUIRK_LEGACY_IDLE),
|
||||
SYSC_QUIRK("sham", 0, 0x100, 0x110, 0x114, 0x40000c03, 0xffffffff,
|
||||
SYSC_QUIRK_LEGACY_IDLE),
|
||||
SYSC_QUIRK("smartreflex", 0, -1, 0x24, -1, 0x00000000, 0xffffffff,
|
||||
|
@ -1245,6 +1239,12 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
|
|||
/* Quirks that need to be set based on detected module */
|
||||
SYSC_QUIRK("aess", 0, 0, 0x10, -1, 0x40000000, 0xffffffff,
|
||||
SYSC_MODULE_QUIRK_AESS),
|
||||
SYSC_QUIRK("dcan", 0x48480000, 0x20, -1, -1, 0xa3170504, 0xffffffff,
|
||||
SYSC_QUIRK_CLKDM_NOAUTO),
|
||||
SYSC_QUIRK("dwc3", 0x48880000, 0, 0x10, -1, 0x500a0200, 0xffffffff,
|
||||
SYSC_QUIRK_CLKDM_NOAUTO),
|
||||
SYSC_QUIRK("dwc3", 0x488c0000, 0, 0x10, -1, 0x500a0200, 0xffffffff,
|
||||
SYSC_QUIRK_CLKDM_NOAUTO),
|
||||
SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x00000006, 0xffffffff,
|
||||
SYSC_MODULE_QUIRK_HDQ1W),
|
||||
SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x0000000a, 0xffffffff,
|
||||
|
|
|
@ -49,6 +49,7 @@ struct sysc_regbits {
|
|||
s8 emufree_shift;
|
||||
};
|
||||
|
||||
#define SYSC_QUIRK_CLKDM_NOAUTO BIT(21)
|
||||
#define SYSC_QUIRK_FORCE_MSTANDBY BIT(20)
|
||||
#define SYSC_MODULE_QUIRK_AESS BIT(19)
|
||||
#define SYSC_MODULE_QUIRK_SGX BIT(18)
|
||||
|
|
Загрузка…
Ссылка в новой задаче