mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:38:03 +00:00
pwm: lpss: Deduplicate board info data structures
Move the board info structures from the glue drivers to the common library and hence deduplicate configuration data. For the Intel Braswell case the ACPI version should be used. Because switch to ACPI/PCI is done in BIOS while quite likely the rest of AML code is the same, meaning similar issue might be observed. There is no bug report due to no PCI enabled device in the wild, Andy thinks, and only reference boards can be tested, so nobody really cares about Intel Braswell PCI case. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
This commit is contained in:
parent
6db87be2e5
commit
090e78d0d8
@ -14,35 +14,6 @@
|
||||
|
||||
#include "pwm-lpss.h"
|
||||
|
||||
/* BayTrail */
|
||||
static const struct pwm_lpss_boardinfo pwm_lpss_byt_info = {
|
||||
.clk_rate = 25000000,
|
||||
.npwm = 1,
|
||||
.base_unit_bits = 16,
|
||||
};
|
||||
|
||||
/* Braswell */
|
||||
static const struct pwm_lpss_boardinfo pwm_lpss_bsw_info = {
|
||||
.clk_rate = 19200000,
|
||||
.npwm = 1,
|
||||
.base_unit_bits = 16,
|
||||
};
|
||||
|
||||
/* Broxton */
|
||||
static const struct pwm_lpss_boardinfo pwm_lpss_bxt_info = {
|
||||
.clk_rate = 19200000,
|
||||
.npwm = 4,
|
||||
.base_unit_bits = 22,
|
||||
.bypass = true,
|
||||
};
|
||||
|
||||
/* Tangier */
|
||||
static const struct pwm_lpss_boardinfo pwm_lpss_tng_info = {
|
||||
.clk_rate = 19200000,
|
||||
.npwm = 4,
|
||||
.base_unit_bits = 22,
|
||||
};
|
||||
|
||||
static int pwm_lpss_probe_pci(struct pci_dev *pdev,
|
||||
const struct pci_device_id *id)
|
||||
{
|
||||
|
@ -15,28 +15,6 @@
|
||||
|
||||
#include "pwm-lpss.h"
|
||||
|
||||
/* BayTrail */
|
||||
static const struct pwm_lpss_boardinfo pwm_lpss_byt_info = {
|
||||
.clk_rate = 25000000,
|
||||
.npwm = 1,
|
||||
.base_unit_bits = 16,
|
||||
};
|
||||
|
||||
/* Braswell */
|
||||
static const struct pwm_lpss_boardinfo pwm_lpss_bsw_info = {
|
||||
.clk_rate = 19200000,
|
||||
.npwm = 1,
|
||||
.base_unit_bits = 16,
|
||||
.other_devices_aml_touches_pwm_regs = true,
|
||||
};
|
||||
|
||||
/* Broxton */
|
||||
static const struct pwm_lpss_boardinfo pwm_lpss_bxt_info = {
|
||||
.clk_rate = 19200000,
|
||||
.npwm = 4,
|
||||
.base_unit_bits = 22,
|
||||
.bypass = true,
|
||||
};
|
||||
|
||||
static int pwm_lpss_probe_platform(struct platform_device *pdev)
|
||||
{
|
||||
|
@ -29,6 +29,40 @@
|
||||
/* Size of each PWM register space if multiple */
|
||||
#define PWM_SIZE 0x400
|
||||
|
||||
/* BayTrail */
|
||||
const struct pwm_lpss_boardinfo pwm_lpss_byt_info = {
|
||||
.clk_rate = 25000000,
|
||||
.npwm = 1,
|
||||
.base_unit_bits = 16,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(pwm_lpss_byt_info);
|
||||
|
||||
/* Braswell */
|
||||
const struct pwm_lpss_boardinfo pwm_lpss_bsw_info = {
|
||||
.clk_rate = 19200000,
|
||||
.npwm = 1,
|
||||
.base_unit_bits = 16,
|
||||
.other_devices_aml_touches_pwm_regs = true,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(pwm_lpss_bsw_info);
|
||||
|
||||
/* Broxton */
|
||||
const struct pwm_lpss_boardinfo pwm_lpss_bxt_info = {
|
||||
.clk_rate = 19200000,
|
||||
.npwm = 4,
|
||||
.base_unit_bits = 22,
|
||||
.bypass = true,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(pwm_lpss_bxt_info);
|
||||
|
||||
/* Tangier */
|
||||
const struct pwm_lpss_boardinfo pwm_lpss_tng_info = {
|
||||
.clk_rate = 19200000,
|
||||
.npwm = 4,
|
||||
.base_unit_bits = 22,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(pwm_lpss_tng_info);
|
||||
|
||||
static inline struct pwm_lpss_chip *to_lpwm(struct pwm_chip *chip)
|
||||
{
|
||||
return container_of(chip, struct pwm_lpss_chip, chip);
|
||||
|
@ -33,6 +33,11 @@ struct pwm_lpss_boardinfo {
|
||||
bool other_devices_aml_touches_pwm_regs;
|
||||
};
|
||||
|
||||
extern const struct pwm_lpss_boardinfo pwm_lpss_byt_info;
|
||||
extern const struct pwm_lpss_boardinfo pwm_lpss_bsw_info;
|
||||
extern const struct pwm_lpss_boardinfo pwm_lpss_bxt_info;
|
||||
extern const struct pwm_lpss_boardinfo pwm_lpss_tng_info;
|
||||
|
||||
struct pwm_lpss_chip *pwm_lpss_probe(struct device *dev, struct resource *r,
|
||||
const struct pwm_lpss_boardinfo *info);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user