linux/drivers/hid/surface-hid/surface_hid_core.h

/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Common/core components for the Surface System Aggregator Module (SSAM) HID
 * transport driver. Provides support for integrated HID devices on Microsoft
 * Surface models.
 *
 * Copyright (C) 2019-2021 Maximilian Luz <[email protected]>
 */

#ifndef SURFACE_HID_CORE_H
#define SURFACE_HID_CORE_H

#include <linux/hid.h>
#include <linux/pm.h>
#include <linux/types.h>

#include <linux/surface_aggregator/controller.h>
#include <linux/surface_aggregator/device.h>

enum surface_hid_descriptor_entry {};

struct surface_hid_descriptor {} __packed;

static_assert();

struct surface_hid_attributes {} __packed;

static_assert();

struct surface_hid_device;

struct surface_hid_device_ops {};

struct surface_hid_device {};

int surface_hid_device_add(struct surface_hid_device *shid);
void surface_hid_device_destroy(struct surface_hid_device *shid);

extern const struct dev_pm_ops surface_hid_pm_ops;

#endif /* SURFACE_HID_CORE_H */