drivers/pwm/pwm-dwc.h

Source file repositories/reference/linux-study-clean/drivers/pwm/pwm-dwc.h

File Facts

System
Linux kernel
Corpus path
drivers/pwm/pwm-dwc.h
Extension
.h
Size
1710 bytes
Lines
75
Domain
Driver Families
Bucket
drivers/pwm
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct dwc_pwm_info {
	unsigned int nr;
	unsigned int size;
};

struct dwc_pwm_drvdata {
	const struct dwc_pwm_info *info;
	void __iomem *io_base;
	struct pwm_chip *chips[];
};

struct dwc_pwm_ctx {
	u32 cnt;
	u32 cnt2;
	u32 ctrl;
};

struct dwc_pwm {
	void __iomem *base;
	unsigned int clk_ns;
	struct dwc_pwm_ctx ctx[DWC_TIMERS_TOTAL];
};

static inline struct dwc_pwm *to_dwc_pwm(struct pwm_chip *chip)
{
	return pwmchip_get_drvdata(chip);
}

static inline u32 dwc_pwm_readl(struct dwc_pwm *dwc, u32 offset)
{
	return readl(dwc->base + offset);
}

static inline void dwc_pwm_writel(struct dwc_pwm *dwc, u32 value, u32 offset)
{
	writel(value, dwc->base + offset);
}

extern struct pwm_chip *dwc_pwm_alloc(struct device *dev);

Annotation

Implementation Notes