diff options
| author | Tony Lindgren <tony@atomide.com> | 2017-12-15 12:41:23 -0500 |
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2017-12-21 10:28:54 -0500 |
| commit | c5a2de97fbd2979fab291fb048084d3fddd322dd (patch) | |
| tree | 45dfca45e1e9c683c961cb20936d464a2380f673 /include/linux/platform_data | |
| parent | 566a9b05e1fa47dcfb93a4459145d0fdc06d3046 (diff) | |
bus: ti-sysc: Add parsing of module capabilities
We need to configure the interconnect target module based on the
device three configuration.
Let's also add a new quirk for SYSC_QUIRK_RESET_STATUS to indicate
that the SYSCONFIG reset bit changes after the reset is done.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'include/linux/platform_data')
| -rw-r--r-- | include/linux/platform_data/ti-sysc.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/platform_data/ti-sysc.h b/include/linux/platform_data/ti-sysc.h index 28e5a61d4abc..1be356330b96 100644 --- a/include/linux/platform_data/ti-sysc.h +++ b/include/linux/platform_data/ti-sysc.h | |||
| @@ -41,6 +41,7 @@ struct sysc_regbits { | |||
| 41 | s8 emufree_shift; | 41 | s8 emufree_shift; |
| 42 | }; | 42 | }; |
| 43 | 43 | ||
| 44 | #define SYSC_QUIRK_RESET_STATUS BIT(7) | ||
| 44 | #define SYSC_QUIRK_NO_IDLE_ON_INIT BIT(6) | 45 | #define SYSC_QUIRK_NO_IDLE_ON_INIT BIT(6) |
| 45 | #define SYSC_QUIRK_NO_RESET_ON_INIT BIT(5) | 46 | #define SYSC_QUIRK_NO_RESET_ON_INIT BIT(5) |
| 46 | #define SYSC_QUIRK_OPT_CLKS_NEEDED BIT(4) | 47 | #define SYSC_QUIRK_OPT_CLKS_NEEDED BIT(4) |
| @@ -49,6 +50,8 @@ struct sysc_regbits { | |||
| 49 | #define SYSC_QUIRK_UNCACHED BIT(1) | 50 | #define SYSC_QUIRK_UNCACHED BIT(1) |
| 50 | #define SYSC_QUIRK_USE_CLOCKACT BIT(0) | 51 | #define SYSC_QUIRK_USE_CLOCKACT BIT(0) |
| 51 | 52 | ||
| 53 | #define SYSC_NR_IDLEMODES 4 | ||
| 54 | |||
| 52 | /** | 55 | /** |
| 53 | * struct sysc_capabilities - capabilities for an interconnect target module | 56 | * struct sysc_capabilities - capabilities for an interconnect target module |
| 54 | * | 57 | * |
| @@ -65,10 +68,17 @@ struct sysc_capabilities { | |||
| 65 | 68 | ||
| 66 | /** | 69 | /** |
| 67 | * struct sysc_config - configuration for an interconnect target module | 70 | * struct sysc_config - configuration for an interconnect target module |
| 71 | * @sysc_val: configured value for sysc register | ||
| 72 | * @midlemodes: bitmask of supported master idle modes | ||
| 73 | * @sidlemodes: bitmask of supported master idle modes | ||
| 68 | * @srst_udelay: optional delay needed after OCP soft reset | 74 | * @srst_udelay: optional delay needed after OCP soft reset |
| 69 | * @quirks: bitmask of enabled quirks | 75 | * @quirks: bitmask of enabled quirks |
| 70 | */ | 76 | */ |
| 71 | struct sysc_config { | 77 | struct sysc_config { |
| 78 | u32 sysc_val; | ||
| 79 | u32 syss_mask; | ||
| 80 | u8 midlemodes; | ||
| 81 | u8 sidlemodes; | ||
| 72 | u8 srst_udelay; | 82 | u8 srst_udelay; |
| 73 | u32 quirks; | 83 | u32 quirks; |
| 74 | }; | 84 | }; |
