cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

serial.h (1073B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Generic serial GNSS receiver driver
      4 *
      5 * Copyright (C) 2018 Johan Hovold <johan@kernel.org>
      6 */
      7
      8#ifndef _LINUX_GNSS_SERIAL_H
      9#define _LINUX_GNSS_SERIAL_H
     10
     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 */