linux/include/linux/mfd/rave-sp.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2
   3/*
   4 * Core definitions for RAVE SP MFD driver.
   5 *
   6 * Copyright (C) 2017 Zodiac Inflight Innovations
   7 */
   8
   9#ifndef _LINUX_RAVE_SP_H_
  10#define _LINUX_RAVE_SP_H_
  11
  12#include <linux/notifier.h>
  13
  14enum rave_sp_command {
  15        RAVE_SP_CMD_GET_FIRMWARE_VERSION        = 0x20,
  16        RAVE_SP_CMD_GET_BOOTLOADER_VERSION      = 0x21,
  17        RAVE_SP_CMD_BOOT_SOURCE                 = 0x26,
  18        RAVE_SP_CMD_GET_BOARD_COPPER_REV        = 0x2B,
  19        RAVE_SP_CMD_GET_GPIO_STATE              = 0x2F,
  20
  21        RAVE_SP_CMD_STATUS                      = 0xA0,
  22        RAVE_SP_CMD_SW_WDT                      = 0xA1,
  23        RAVE_SP_CMD_PET_WDT                     = 0xA2,
  24        RAVE_SP_CMD_RMB_EEPROM                  = 0xA4,
  25        RAVE_SP_CMD_SET_BACKLIGHT               = 0xA6,
  26        RAVE_SP_CMD_RESET                       = 0xA7,
  27        RAVE_SP_CMD_RESET_REASON                = 0xA8,
  28
  29        RAVE_SP_CMD_REQ_COPPER_REV              = 0xB6,
  30        RAVE_SP_CMD_GET_I2C_DEVICE_STATUS       = 0xBA,
  31        RAVE_SP_CMD_GET_SP_SILICON_REV          = 0xB9,
  32        RAVE_SP_CMD_CONTROL_EVENTS              = 0xBB,
  33
  34        RAVE_SP_EVNT_BASE                       = 0xE0,
  35};
  36
  37struct rave_sp;
  38
  39static inline unsigned long rave_sp_action_pack(u8 event, u8 value)
  40{
  41        return ((unsigned long)value << 8) | event;
  42}
  43
  44static inline u8 rave_sp_action_unpack_event(unsigned long action)
  45{
  46        return action;
  47}
  48
  49static inline u8 rave_sp_action_unpack_value(unsigned long action)
  50{
  51        return action >> 8;
  52}
  53
  54int rave_sp_exec(struct rave_sp *sp,
  55                 void *__data,  size_t data_size,
  56                 void *reply_data, size_t reply_data_size);
  57
  58struct device;
  59int devm_rave_sp_register_event_notifier(struct device *dev,
  60                                         struct notifier_block *nb);
  61
  62#endif /* _LINUX_RAVE_SP_H_ */
  63