drivers/usb/isp1760/isp1760-core.h

Source file repositories/reference/linux-study-clean/drivers/usb/isp1760/isp1760-core.h

File Facts

System
Linux kernel
Corpus path
drivers/usb/isp1760/isp1760-core.h
Extension
.h
Size
2647 bytes
Lines
98
Domain
Driver Families
Bucket
drivers/usb
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 isp1760_device {
	struct device *dev;

	unsigned int devflags;
	struct gpio_desc *rst_gpio;

	struct isp1760_hcd hcd;
	struct isp1760_udc udc;
};

int isp1760_register(struct resource *mem, int irq, unsigned long irqflags,
		     struct device *dev, unsigned int devflags);
void isp1760_unregister(struct device *dev);

void isp1760_set_pullup(struct isp1760_device *isp, bool enable);

static inline u32 isp1760_field_read(struct regmap_field **fields, u32 field)
{
	unsigned int val;

	regmap_field_read(fields[field], &val);

	return val;
}

static inline void isp1760_field_write(struct regmap_field **fields, u32 field,
				       u32 val)
{
	regmap_field_write(fields[field], val);
}

static inline void isp1760_field_set(struct regmap_field **fields, u32 field)
{
	isp1760_field_write(fields, field, 0xFFFFFFFF);
}

static inline void isp1760_field_clear(struct regmap_field **fields, u32 field)
{
	isp1760_field_write(fields, field, 0);
}

static inline u32 isp1760_reg_read(struct regmap *regs, u32 reg)
{
	unsigned int val;

	regmap_read(regs, reg, &val);

	return val;
}

static inline void isp1760_reg_write(struct regmap *regs, u32 reg, u32 val)
{
	regmap_write(regs, reg, val);
}
#endif

Annotation

Implementation Notes