root/drivers/gnss/serial.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. gnss_serial_get_drvdata

   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 
  14 struct 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[0];
  20 };
  21 
  22 enum gnss_serial_pm_state {
  23         GNSS_SERIAL_OFF,
  24         GNSS_SERIAL_ACTIVE,
  25         GNSS_SERIAL_STANDBY,
  26 };
  27 
  28 struct gnss_serial_ops {
  29         int (*set_power)(struct gnss_serial *gserial,
  30                                 enum gnss_serial_pm_state state);
  31 };
  32 
  33 extern const struct dev_pm_ops gnss_serial_pm_ops;
  34 
  35 struct gnss_serial *gnss_serial_allocate(struct serdev_device *gserial,
  36                                                 size_t data_size);
  37 void gnss_serial_free(struct gnss_serial *gserial);
  38 
  39 int gnss_serial_register(struct gnss_serial *gserial);
  40 void gnss_serial_deregister(struct gnss_serial *gserial);
  41 
  42 static inline void *gnss_serial_get_drvdata(struct gnss_serial *gserial)
  43 {
  44         return gserial->drvdata;
  45 }
  46 
  47 #endif /* _LINUX_GNSS_SERIAL_H */

/* [<][>][^][v][top][bottom][index][help] */