bus: ti-sysc: Implement GPMC debug quirk to drop platform data
authorTony Lindgren <tony@atomide.com>
Mon, 16 Nov 2020 10:57:13 +0000 (12:57 +0200)
committerTony Lindgren <tony@atomide.com>
Mon, 16 Nov 2020 10:57:27 +0000 (12:57 +0200)
We need to enable no-reset-on-init quirk for GPMC if the config
option for CONFIG_OMAP_GPMC_DEBUG is set. Otherwise the GPMC
driver code is unable to show the bootloader configured timings.

Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/bus/ti-sysc.c
include/linux/platform_data/ti-sysc.h

index 88a5d22091f3cebb2e957c2d14ed616aa2250c55..691cc39bfc5c8115f1e3a079deaab25c9a0b1ffb 100644 (file)
@@ -1383,6 +1383,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
                   SYSC_QUIRK_CLKDM_NOAUTO),
        SYSC_QUIRK("dwc3", 0x488c0000, 0, 0x10, -ENODEV, 0x500a0200, 0xffffffff,
                   SYSC_QUIRK_CLKDM_NOAUTO),
+       SYSC_QUIRK("gpmc", 0, 0, 0x10, 0x14, 0x00000060, 0xffffffff,
+                  SYSC_QUIRK_GPMC_DEBUG),
        SYSC_QUIRK("hdmi", 0, 0, 0x10, -ENODEV, 0x50030200, 0xffffffff,
                   SYSC_QUIRK_OPT_CLKS_NEEDED),
        SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x00000006, 0xffffffff,
@@ -1818,6 +1820,14 @@ static void sysc_init_module_quirks(struct sysc *ddata)
                return;
        }
 
+#ifdef CONFIG_OMAP_GPMC_DEBUG
+       if (ddata->cfg.quirks & SYSC_QUIRK_GPMC_DEBUG) {
+               ddata->cfg.quirks |= SYSC_QUIRK_NO_RESET_ON_INIT;
+
+               return;
+       }
+#endif
+
        if (ddata->cfg.quirks & SYSC_MODULE_QUIRK_I2C) {
                ddata->pre_reset_quirk = sysc_pre_reset_quirk_i2c;
                ddata->post_reset_quirk = sysc_post_reset_quirk_i2c;
index 240dce553a0bdde2a7f38f895e0064b7d1a9bbe5..fafc1beea504ab7f79228f92ff1e6f8fcbd98e94 100644 (file)
@@ -50,6 +50,7 @@ struct sysc_regbits {
        s8 emufree_shift;
 };
 
+#define SYSC_QUIRK_GPMC_DEBUG          BIT(26)
 #define SYSC_MODULE_QUIRK_ENA_RESETDONE        BIT(25)
 #define SYSC_MODULE_QUIRK_PRUSS                BIT(24)
 #define SYSC_MODULE_QUIRK_DSS_RESET    BIT(23)