There are no new drivers here, only a couple of fixes all over the place. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABAgAGBQJURLy0AAoJEN0jrNd/PrOhP8UP/Auwzo3Wd0cFJEnJVdyrj9sN l0Wwnib3edKQDNhPmnQE77fXT3oo4XhdNAzoCRfcy+e/yVq6p3og+tz6z87DahCt nnfKCTK8MRw1d4tniVHVhi0BDSfbjXdJCiXe/mmqfPTegIxF5ps7JnHbTZuIOx8i XRfxBvAqmmXGmNQANfW7/iZdDzSKQ70DjHIBFn/pa1eLQG2lJ54joo/yeA1Kk0Ly CSJGF7L7XLV9mWxXA1vZWGgpIV6dduObtOpRlOwPkG7tGmXInbUery0G429ah8ce o7LevARZ41yi7fA6nDtNDG8FWq7oavq0jWvRQuq8M5xn+aYGmYZdd/W47Xc0xUnF eGAmz0q78poDTZDA1EXoY/6Og+JgI8x+PpDxaRN4FIa6gpkcTQEuafpo9BLfGo4K PTDckq3FqOkIcX5jA4X5OP8lgnz08PZDQaE6QomuNpeKJRy/3aEKWRJ+C4XWcF9t 7bgkBTLEOq51UXUNuPjogGtwmW8Mf6WOfRdvaRLiTH7KJlJjgwxJYrs0o2D1q7bz TbZeDRcRhG7ZfR/5nz7qDEA8FjgwOLCMciqBT4wBc47Er7VaURWl5aoSuTxalJ3A hqk8jbwKhaAO+L7N6Jzqk1TqxOKC9HbhaJO7to4gir07bEpXOHQu1jFwZEAmRbvH x1prpzzghUPmVv0WYh36 =llZK -----END PGP SIGNATURE----- Merge tag 'pwm/for-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm Pull pwm changes from Thierry Reding: "There are no new drivers here, only a couple of fixes all over the place" * tag 'pwm/for-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: pwm: Let PWM_CLPS711X depend on HAS_IOMEM pwm: atmel: Fix calculation of prescale value pwm: Fix uninitialized warnings in pwm_get() pwm: rockchip: Allow polarity invert on rk3288 pwm: imx: Avoid sample FIFO overflow for i.MX PWM version2 pwm: imx: Cleanup indentation for register definitions pwm: imx: Fix the macro MX3_PWMCR_PRESCALER(x) definition pwm: Fix possible ZERO_SIZE_PTR pointer dereferencing error. pwm: lpss: make it buildable only on X86 pwm: lpss: use c99 initializers in structures pwm: lpss: Fix build failure on PowerPC pwm: lpss: pci: Move to use pcim_enable_device() pwm: lpss: Properly split driver to parts pwm: lpss: Add ACPI and PCI IDs for Intel Braswell pwm: fsl-ftm: Select REGMAP_MMIO pwm: fsl-ftm: Document 'big-endian' property pwm: fsl-ftm: Convert to direct regmap API usage pwm: fsl-ftm: Clean up the codetirimbino
commit
5b9c897252
@ -0,0 +1,64 @@ |
||||
/*
|
||||
* Intel Low Power Subsystem PWM controller PCI driver |
||||
* |
||||
* Copyright (C) 2014, Intel Corporation |
||||
* |
||||
* Derived from the original pwm-lpss.c |
||||
* |
||||
* This program is free software; you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License version 2 as |
||||
* published by the Free Software Foundation. |
||||
*/ |
||||
|
||||
#include <linux/kernel.h> |
||||
#include <linux/module.h> |
||||
#include <linux/pci.h> |
||||
|
||||
#include "pwm-lpss.h" |
||||
|
||||
static int pwm_lpss_probe_pci(struct pci_dev *pdev, |
||||
const struct pci_device_id *id) |
||||
{ |
||||
const struct pwm_lpss_boardinfo *info; |
||||
struct pwm_lpss_chip *lpwm; |
||||
int err; |
||||
|
||||
err = pcim_enable_device(pdev); |
||||
if (err < 0) |
||||
return err; |
||||
|
||||
info = (struct pwm_lpss_boardinfo *)id->driver_data; |
||||
lpwm = pwm_lpss_probe(&pdev->dev, &pdev->resource[0], info); |
||||
if (IS_ERR(lpwm)) |
||||
return PTR_ERR(lpwm); |
||||
|
||||
pci_set_drvdata(pdev, lpwm); |
||||
return 0; |
||||
} |
||||
|
||||
static void pwm_lpss_remove_pci(struct pci_dev *pdev) |
||||
{ |
||||
struct pwm_lpss_chip *lpwm = pci_get_drvdata(pdev); |
||||
|
||||
pwm_lpss_remove(lpwm); |
||||
} |
||||
|
||||
static const struct pci_device_id pwm_lpss_pci_ids[] = { |
||||
{ PCI_VDEVICE(INTEL, 0x0f08), (unsigned long)&pwm_lpss_byt_info}, |
||||
{ PCI_VDEVICE(INTEL, 0x0f09), (unsigned long)&pwm_lpss_byt_info}, |
||||
{ PCI_VDEVICE(INTEL, 0x2288), (unsigned long)&pwm_lpss_bsw_info}, |
||||
{ PCI_VDEVICE(INTEL, 0x2289), (unsigned long)&pwm_lpss_bsw_info}, |
||||
{ }, |
||||
}; |
||||
MODULE_DEVICE_TABLE(pci, pwm_lpss_pci_ids); |
||||
|
||||
static struct pci_driver pwm_lpss_driver_pci = { |
||||
.name = "pwm-lpss", |
||||
.id_table = pwm_lpss_pci_ids, |
||||
.probe = pwm_lpss_probe_pci, |
||||
.remove = pwm_lpss_remove_pci, |
||||
}; |
||||
module_pci_driver(pwm_lpss_driver_pci); |
||||
|
||||
MODULE_DESCRIPTION("PWM PCI driver for Intel LPSS"); |
||||
MODULE_LICENSE("GPL v2"); |
@ -0,0 +1,68 @@ |
||||
/*
|
||||
* Intel Low Power Subsystem PWM controller driver |
||||
* |
||||
* Copyright (C) 2014, Intel Corporation |
||||
* |
||||
* Derived from the original pwm-lpss.c |
||||
* |
||||
* This program is free software; you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License version 2 as |
||||
* published by the Free Software Foundation. |
||||
*/ |
||||
|
||||
#include <linux/acpi.h> |
||||
#include <linux/kernel.h> |
||||
#include <linux/module.h> |
||||
#include <linux/platform_device.h> |
||||
|
||||
#include "pwm-lpss.h" |
||||
|
||||
static int pwm_lpss_probe_platform(struct platform_device *pdev) |
||||
{ |
||||
const struct pwm_lpss_boardinfo *info; |
||||
const struct acpi_device_id *id; |
||||
struct pwm_lpss_chip *lpwm; |
||||
struct resource *r; |
||||
|
||||
id = acpi_match_device(pdev->dev.driver->acpi_match_table, &pdev->dev); |
||||
if (!id) |
||||
return -ENODEV; |
||||
|
||||
info = (const struct pwm_lpss_boardinfo *)id->driver_data; |
||||
r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
||||
|
||||
lpwm = pwm_lpss_probe(&pdev->dev, r, info); |
||||
if (IS_ERR(lpwm)) |
||||
return PTR_ERR(lpwm); |
||||
|
||||
platform_set_drvdata(pdev, lpwm); |
||||
return 0; |
||||
} |
||||
|
||||
static int pwm_lpss_remove_platform(struct platform_device *pdev) |
||||
{ |
||||
struct pwm_lpss_chip *lpwm = platform_get_drvdata(pdev); |
||||
|
||||
return pwm_lpss_remove(lpwm); |
||||
} |
||||
|
||||
static const struct acpi_device_id pwm_lpss_acpi_match[] = { |
||||
{ "80860F09", (unsigned long)&pwm_lpss_byt_info }, |
||||
{ "80862288", (unsigned long)&pwm_lpss_bsw_info }, |
||||
{ }, |
||||
}; |
||||
MODULE_DEVICE_TABLE(acpi, pwm_lpss_acpi_match); |
||||
|
||||
static struct platform_driver pwm_lpss_driver_platform = { |
||||
.driver = { |
||||
.name = "pwm-lpss", |
||||
.acpi_match_table = pwm_lpss_acpi_match, |
||||
}, |
||||
.probe = pwm_lpss_probe_platform, |
||||
.remove = pwm_lpss_remove_platform, |
||||
}; |
||||
module_platform_driver(pwm_lpss_driver_platform); |
||||
|
||||
MODULE_DESCRIPTION("PWM platform driver for Intel LPSS"); |
||||
MODULE_LICENSE("GPL v2"); |
||||
MODULE_ALIAS("platform:pwm-lpss"); |
@ -0,0 +1,32 @@ |
||||
/*
|
||||
* Intel Low Power Subsystem PWM controller driver |
||||
* |
||||
* Copyright (C) 2014, Intel Corporation |
||||
* |
||||
* Derived from the original pwm-lpss.c |
||||
* |
||||
* This program is free software; you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License version 2 as |
||||
* published by the Free Software Foundation. |
||||
*/ |
||||
|
||||
#ifndef __PWM_LPSS_H |
||||
#define __PWM_LPSS_H |
||||
|
||||
#include <linux/device.h> |
||||
#include <linux/pwm.h> |
||||
|
||||
struct pwm_lpss_chip; |
||||
|
||||
struct pwm_lpss_boardinfo { |
||||
unsigned long clk_rate; |
||||
}; |
||||
|
||||
extern const struct pwm_lpss_boardinfo pwm_lpss_byt_info; |
||||
extern const struct pwm_lpss_boardinfo pwm_lpss_bsw_info; |
||||
|
||||
struct pwm_lpss_chip *pwm_lpss_probe(struct device *dev, struct resource *r, |
||||
const struct pwm_lpss_boardinfo *info); |
||||
int pwm_lpss_remove(struct pwm_lpss_chip *lpwm); |
||||
|
||||
#endif /* __PWM_LPSS_H */ |
Loading…
Reference in new issue