hc
2024-08-12 0517ab8c70e05fc5877c0c6dae1a5f42a16dcf88
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Intel Low Power Subsystem PWM controller driver
 *
 * Copyright (C) 2014, Intel Corporation
 *
 * Derived from the original pwm-lpss.c
 */
 
#ifndef __PWM_LPSS_H
#define __PWM_LPSS_H
 
#include <linux/device.h>
#include <linux/pwm.h>
 
#define MAX_PWMS            4
 
struct pwm_lpss_chip {
   struct pwm_chip chip;
   void __iomem *regs;
   const struct pwm_lpss_boardinfo *info;
};
 
struct pwm_lpss_boardinfo {
   unsigned long clk_rate;
   unsigned int npwm;
   unsigned long base_unit_bits;
   bool bypass;
   /*
    * 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;
};
 
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 */