Blame view

drivers/pwm/pwm-lpss.h 903 Bytes
d2912cb15   Thomas Gleixner   treewide: Replace...
1
  /* SPDX-License-Identifier: GPL-2.0-only */
c558e39e1   Andy Shevchenko   pwm: lpss: Proper...
2
3
4
5
6
7
  /*
   * Intel Low Power Subsystem PWM controller driver
   *
   * Copyright (C) 2014, Intel Corporation
   *
   * Derived from the original pwm-lpss.c
c558e39e1   Andy Shevchenko   pwm: lpss: Proper...
8
9
10
11
12
13
14
   */
  
  #ifndef __PWM_LPSS_H
  #define __PWM_LPSS_H
  
  #include <linux/device.h>
  #include <linux/pwm.h>
9dc419b6c   Hans de Goede   pwm: lpss: Move s...
15
16
17
18
19
20
  #define MAX_PWMS			4
  
  struct pwm_lpss_chip {
  	struct pwm_chip chip;
  	void __iomem *regs;
  	const struct pwm_lpss_boardinfo *info;
9dc419b6c   Hans de Goede   pwm: lpss: Move s...
21
  };
c558e39e1   Andy Shevchenko   pwm: lpss: Proper...
22
23
24
  
  struct pwm_lpss_boardinfo {
  	unsigned long clk_rate;
4e11f5acb   Mika Westerberg   pwm: lpss: Add su...
25
  	unsigned int npwm;
883e4d070   qipeng.zha   pwm: lpss: Update...
26
  	unsigned long base_unit_bits;
b997e3edc   Hans de Goede   pwm: lpss: Set en...
27
  	bool bypass;
4743765ba   Hans de Goede   pwm: lpss: Force ...
28
29
30
31
32
  	/*
  	 * On some devices the _PS0/_PS3 AML code of the GPU (GFX0) device
  	 * messes with the PWM0 controllers state,
  	 */
  	bool other_devices_aml_touches_pwm_regs;
c558e39e1   Andy Shevchenko   pwm: lpss: Proper...
33
  };
c558e39e1   Andy Shevchenko   pwm: lpss: Proper...
34
35
36
37
38
  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 */