platform/x86: intel_pmc_ipc: Convert to MFD
This driver only creates a bunch of platform devices sharing resources belonging to the PMC device. This is pretty much what MFD subsystem is for so move the driver there, renaming it to intel_pmc_bxt.c which should be more clear what it is. MFD subsystem provides nice helper APIs for subdevice creation so convert the driver to use those. Unfortunately the ACPI device includes separate resources for most of the subdevices so we cannot simply call mfd_add_devices() to create all of them but instead we need to call it separately for each device. The new MFD driver continues to expose two sysfs attributes that allow userspace to send IPC commands to the PMC/SCU to avoid breaking any existing applications that may use these. Generally this is bad idea so document this in the ABI documentation. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
0759a8730c
commit
25f1ca31e2
15 changed files with 603 additions and 721 deletions
|
|
@ -12,13 +12,16 @@
|
|||
#define ICH_RES_MEM_OFF 2
|
||||
#define ICH_RES_MEM_GCS_PMC 0
|
||||
|
||||
/**
|
||||
* struct itco_wdt_platform_data - iTCO_wdt platform data
|
||||
* @name: Name of the platform
|
||||
* @version: iTCO version
|
||||
* @no_reboot_use_pmc: Use PMC BXT API to set and clear NO_REBOOT bit
|
||||
*/
|
||||
struct itco_wdt_platform_data {
|
||||
char name[32];
|
||||
unsigned int version;
|
||||
/* private data to be passed to update_no_reboot_bit API */
|
||||
void *no_reboot_priv;
|
||||
/* pointer for platform specific no reboot update function */
|
||||
int (*update_no_reboot_bit)(void *priv, bool set);
|
||||
bool no_reboot_use_pmc;
|
||||
};
|
||||
|
||||
#endif /* _ITCO_WDT_H_ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue