brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 621953f Raw
48 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Generic serial GNSS receiver driver4 *5 * Copyright (C) 2018 Johan Hovold <johan@kernel.org>6 */7 8#ifndef _LINUX_GNSS_SERIAL_H9#define _LINUX_GNSS_SERIAL_H10 11#include <asm/termbits.h>12#include <linux/pm.h>13 14struct gnss_serial {15	struct serdev_device *serdev;16	struct gnss_device *gdev;17	speed_t	speed;18	const struct gnss_serial_ops *ops;19	unsigned long drvdata[];20};21 22enum gnss_serial_pm_state {23	GNSS_SERIAL_OFF,24	GNSS_SERIAL_ACTIVE,25	GNSS_SERIAL_STANDBY,26};27 28struct gnss_serial_ops {29	int (*set_power)(struct gnss_serial *gserial,30				enum gnss_serial_pm_state state);31};32 33extern const struct dev_pm_ops gnss_serial_pm_ops;34 35struct gnss_serial *gnss_serial_allocate(struct serdev_device *gserial,36						size_t data_size);37void gnss_serial_free(struct gnss_serial *gserial);38 39int gnss_serial_register(struct gnss_serial *gserial);40void gnss_serial_deregister(struct gnss_serial *gserial);41 42static inline void *gnss_serial_get_drvdata(struct gnss_serial *gserial)43{44	return gserial->drvdata;45}46 47#endif /* _LINUX_GNSS_SERIAL_H */48