October 2017
Intermediate to advanced
586 pages
14h 8m
English
As you need struct gpio_chip when writing GPIO-controller drivers and struct irq_chip when writing IRQ-controller drivers, a PWM controller is represented in the kernel as an instance of the struct pwm_chip structure:

struct pwm_chip {
struct device *dev;
const struct pwm_ops *ops;
int base;
unsigned int npwm;
struct pwm_device *pwms;
struct pwm_device * (*of_xlate)(struct pwm_chip *pc,
const struct of_phandle_args *args);
unsigned int of_pwm_n_cells;
bool can_sleep;
};
The following lists the meaning of each element in the structure: