drivers/gnss/serial.h

Source file repositories/reference/linux-study-clean/drivers/gnss/serial.h

File Facts

System
Linux kernel
Corpus path
drivers/gnss/serial.h
Extension
.h
Size
1073 bytes
Lines
48
Domain
Driver Families
Bucket
drivers/gnss
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 gnss_serial {
	struct serdev_device *serdev;
	struct gnss_device *gdev;
	speed_t	speed;
	const struct gnss_serial_ops *ops;
	unsigned long drvdata[];
};

enum gnss_serial_pm_state {
	GNSS_SERIAL_OFF,
	GNSS_SERIAL_ACTIVE,
	GNSS_SERIAL_STANDBY,
};

struct gnss_serial_ops {
	int (*set_power)(struct gnss_serial *gserial,
				enum gnss_serial_pm_state state);
};

extern const struct dev_pm_ops gnss_serial_pm_ops;

struct gnss_serial *gnss_serial_allocate(struct serdev_device *gserial,
						size_t data_size);
void gnss_serial_free(struct gnss_serial *gserial);

int gnss_serial_register(struct gnss_serial *gserial);
void gnss_serial_deregister(struct gnss_serial *gserial);

static inline void *gnss_serial_get_drvdata(struct gnss_serial *gserial)
{
	return gserial->drvdata;
}

#endif /* _LINUX_GNSS_SERIAL_H */

Annotation

Implementation Notes