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:
PWM controller and devices
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 is the meaning of each element in the structure:
- dev: This represents the device associated with this chip.
- Ops: This is a data structure providing callback functions this chip exposes to consumer drivers.
- Base: This is the number of the first PWM controlled by this chip. If chip->base...