1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Intel LPSS core support. 4 * 5 * Copyright (C) 2015, Intel Corporation 6 * 7 * Authors: Andy Shevchenko <andriy.shevchenko@linux.intel.com> 8 * Mika Westerberg <mika.westerberg@linux.intel.com> 9 */ 10 11 #ifndef __MFD_INTEL_LPSS_H 12 #define __MFD_INTEL_LPSS_H 13 14 #include <linux/bits.h> 15 #include <linux/pm.h> 16 17 /* 18 * Some DSDTs have an unused GEXP ACPI device conflicting with I2C4 resources. 19 * Set to ignore resource conflicts with ACPI declared SystemMemory regions. 20 */ 21 #define QUIRK_IGNORE_RESOURCE_CONFLICTS BIT(0) 22 /* 23 * Some devices have misconfigured clock divider due to a firmware bug. 24 * Set this to force the clock divider to 1:1 ratio. 25 */ 26 #define QUIRK_CLOCK_DIVIDER_UNITY BIT(1) 27 28 struct device; 29 struct resource; 30 struct software_node; 31 32 struct intel_lpss_platform_info { 33 struct resource *mem; 34 int irq; 35 unsigned int quirks; 36 unsigned long clk_rate; 37 const char *clk_con_id; 38 const struct software_node *swnode; 39 }; 40 41 int intel_lpss_probe(struct device *dev, 42 const struct intel_lpss_platform_info *info); 43 void intel_lpss_remove(struct device *dev); 44 45 extern const struct dev_pm_ops intel_lpss_pm_ops; 46 47 #endif /* __MFD_INTEL_LPSS_H */ 48