2019-06-04 10:11:33 +02:00
/* SPDX-License-Identifier: GPL-2.0-only */
2015-07-27 18:04:03 +03:00
/*
* Intel LPSS core support .
*
* Copyright ( C ) 2015 , Intel Corporation
*
* Authors : Andy Shevchenko < andriy . shevchenko @ linux . intel . com >
* Mika Westerberg < mika . westerberg @ linux . intel . com >
*/
# ifndef __MFD_INTEL_LPSS_H
# define __MFD_INTEL_LPSS_H
2023-12-21 19:51:41 +01:00
# include <linux/bits.h>
2019-01-24 20:03:28 +02:00
# include <linux/pm.h>
2023-12-21 19:51:41 +01:00
/*
* Some DSDTs have an unused GEXP ACPI device conflicting with I2C4 resources .
* Set to ignore resource conflicts with ACPI declared SystemMemory regions .
*/
# define QUIRK_IGNORE_RESOURCE_CONFLICTS BIT(0)
2023-12-21 19:51:42 +01:00
/*
* Some devices have misconfigured clock divider due to a firmware bug .
* Set this to force the clock divider to 1 : 1 ratio .
*/
# define QUIRK_CLOCK_DIVIDER_UNITY BIT(1)
2023-12-21 19:51:41 +01:00
2015-07-27 18:04:03 +03:00
struct device ;
struct resource ;
2021-03-01 16:42:21 +02:00
struct software_node ;
2015-07-27 18:04:03 +03:00
struct intel_lpss_platform_info {
struct resource * mem ;
int irq ;
2023-12-21 19:51:41 +01:00
unsigned int quirks ;
2015-07-27 18:04:03 +03:00
unsigned long clk_rate ;
const char * clk_con_id ;
2021-03-01 16:42:21 +02:00
const struct software_node * swnode ;
2015-07-27 18:04:03 +03:00
} ;
int intel_lpss_probe ( struct device * dev ,
const struct intel_lpss_platform_info * info ) ;
void intel_lpss_remove ( struct device * dev ) ;
2023-11-24 21:31:28 +02:00
extern const struct dev_pm_ops intel_lpss_pm_ops ;
2015-07-27 18:04:03 +03:00
# endif /* __MFD_INTEL_LPSS_H */