blob: fcf2721de2d81713e913c10657469e57bcea30f5 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <hid/descriptor.h>
#include <hid/ltr-578als.h>
#define HID_USAGE_AMBIENT_LIGHT HID_USAGE16(0x04d1)
#define HID_USAGE_HUMAN_PROXIMITY_RANGE HID_USAGE16(0x04b2)
static const uint8_t ltr_578als_report_desc[] = {
HID_USAGE_PAGE(0x20),
HID_COLLECTION_APPLICATION,
HID_REPORT_ID(LTR_578ALS_RPT_ID_INPUT),
HID_USAGE(0x41), // Ambient light
HID_USAGE_AMBIENT_LIGHT,
HID_LOGICAL_MIN(0),
HID_LOGICAL_MAX32(0x000fffff),
HID_REPORT_SIZE(32),
HID_REPORT_COUNT(1),
HID_USAGE_SENSOR_GENERIC_UNITS_NOT_SPECIFIED,
HID_INPUT(HID_Data_Var_Abs),
HID_USAGE(0x12), // Human proximity
HID_USAGE_HUMAN_PROXIMITY_RANGE,
HID_LOGICAL_MIN(0x0000),
HID_LOGICAL_MAX16(0x07ff),
HID_REPORT_SIZE(16),
HID_REPORT_COUNT(1),
HID_USAGE_SENSOR_GENERIC_UNITS_NOT_SPECIFIED,
HID_INPUT(HID_Data_Var_Abs),
HID_REPORT_ID(LTR_578ALS_RPT_ID_FEATURE),
HID_USAGE_SENSOR_PROPERTY_REPORT_INTERVAL,
HID_LOGICAL_MIN(0),
HID_LOGICAL_MAX32(0x7fffffff),
HID_REPORT_SIZE(32),
HID_REPORT_COUNT(1),
HID_FEATURE(HID_Data_Var_Abs),
// TODO(bradenkell): Add additional configuration fields as needed.
HID_END_COLLECTION,
};
size_t get_ltr_578als_report_desc(const uint8_t** buf) {
*buf = ltr_578als_report_desc;
return sizeof(ltr_578als_report_desc);
}