blob: 753ea9a88469c06912e33ba700d1eb15acb33649 [file] [log] [blame]
/*
* Copyright (c) 2013, Motorola, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/***************************** WARNING ******************************
* *
* DO NOT EDIT THIS FILE *
* *
* This is an auto-generated file based on register maps in the *
* M4 Sensor Hub source tree. *
* *
***************************** WARNING *****************************/
#ifndef __M4SENSORHUB_MEM_INTERNAL_H__
#define __M4SENSORHUB_MEM_INTERNAL_H__
static const struct {
enum m4sensorhub_type type; /* Type of register */
unsigned short offset; /* Offset into type's memory */
unsigned short size; /* Size of register in bytes */
} register_info_tbl[M4SH_REG__NUM] = {
[M4SH_REG_ACCEL_VERSION] = {M4SH_TYPE_ACCEL, 0x0, 1},
[M4SH_REG_ACCEL_DUMMY] = {M4SH_TYPE_ACCEL, 0x1, 1},
[M4SH_REG_ACCEL_SAMPLERATE] = {M4SH_TYPE_ACCEL, 0x2, 2},
[M4SH_REG_ACCEL_X] = {M4SH_TYPE_ACCEL, 0x4, 4},
[M4SH_REG_ACCEL_Y] = {M4SH_TYPE_ACCEL, 0x8, 4},
[M4SH_REG_ACCEL_Z] = {M4SH_TYPE_ACCEL, 0xc, 4},
[M4SH_REG_ACCEL_SCALEDMAGSQUARED] = {M4SH_TYPE_ACCEL, 0x10, 4},
[M4SH_REG_ACCEL_MAGNITUDE] = {M4SH_TYPE_ACCEL, 0x14, 4},
[M4SH_REG_ACCEL_TILT] = {M4SH_TYPE_ACCEL, 0x18, 2},
[M4SH_REG_ACCEL_ORIENTATION] = {M4SH_TYPE_ACCEL, 0x1a, 2},
[M4SH_REG_TEMP_VERSION] = {M4SH_TYPE_TEMP, 0x0, 1},
[M4SH_REG_TEMP_DUMMY] = {M4SH_TYPE_TEMP, 0x1, 1},
[M4SH_REG_TEMP_SAMPLERATE] = {M4SH_TYPE_TEMP, 0x2, 2},
[M4SH_REG_TEMP_EXTRNLTEMP] = {M4SH_TYPE_TEMP, 0x4, 2},
[M4SH_REG_TEMP_INTRNLTEMP] = {M4SH_TYPE_TEMP, 0x6, 2},
[M4SH_REG_GENERAL_UTC] = {M4SH_TYPE_GENERAL, 0x0, 4},
[M4SH_REG_GENERAL_APALARM] = {M4SH_TYPE_GENERAL, 0x4, 4},
[M4SH_REG_GENERAL_LOCALTIMEZONE] = {M4SH_TYPE_GENERAL, 0x8, 2},
[M4SH_REG_GENERAL_VERSION] = {M4SH_TYPE_GENERAL, 0xa, 1},
[M4SH_REG_GENERAL_INTERRUPT0ENABLE] = {M4SH_TYPE_GENERAL, 0xb, 1},
[M4SH_REG_GENERAL_INTERRUPT1ENABLE] = {M4SH_TYPE_GENERAL, 0xc, 1},
[M4SH_REG_GENERAL_INTERRUPT2ENABLE] = {M4SH_TYPE_GENERAL, 0xd, 1},
[M4SH_REG_GENERAL_INTERRUPT0STATUS] = {M4SH_TYPE_GENERAL, 0xe, 1},
[M4SH_REG_GENERAL_INTERRUPT1STATUS] = {M4SH_TYPE_GENERAL, 0xf, 1},
[M4SH_REG_GENERAL_INTERRUPT2STATUS] = {M4SH_TYPE_GENERAL, 0x10, 1},
[M4SH_REG_PRESSURE_VERSION] = {M4SH_TYPE_PRESSURE, 0x0, 1},
[M4SH_REG_PRESSURE_DUMMY] = {M4SH_TYPE_PRESSURE, 0x1, 1},
[M4SH_REG_PRESSURE_SAMPLERATE] = {M4SH_TYPE_PRESSURE, 0x2, 2},
[M4SH_REG_PRESSURE_PRESSURE] = {M4SH_TYPE_PRESSURE, 0x4, 4},
[M4SH_REG_PRESSURE_REFERENCEALTITUDE] = {M4SH_TYPE_PRESSURE, 0x8, 4},
[M4SH_REG_PRESSURE_SEALEVELPRESSURE] = {M4SH_TYPE_PRESSURE, 0xc, 4},
[M4SH_REG_PRESSURE_ABSOLUTEALTITUDE] = {M4SH_TYPE_PRESSURE, 0x10, 4},
[M4SH_REG_PRESSURE_TEMPERATURE] = {M4SH_TYPE_PRESSURE, 0x14, 2},
[M4SH_REG_PRESSURE_ISVALID] = {M4SH_TYPE_PRESSURE, 0x16, 1},
[M4SH_REG_PEDOMETER_ENABLE] = {M4SH_TYPE_PEDOMETER, 0x0, 1},
[M4SH_REG_PEDOMETER_TESTCMD] = {M4SH_TYPE_PEDOMETER, 0x1, 1},
[M4SH_REG_PEDOMETER_ACTIVITY] = {M4SH_TYPE_PEDOMETER, 0x2, 1},
[M4SH_REG_PEDOMETER_EQUIPMENTTYPE] = {M4SH_TYPE_PEDOMETER, 0x3, 1},
[M4SH_REG_PEDOMETER_TOTALSTEPS] = {M4SH_TYPE_PEDOMETER, 0x4, 4},
[M4SH_REG_PEDOMETER_REPORTEDDISTANCE] = {M4SH_TYPE_PEDOMETER, 0x8, 4},
[M4SH_REG_PEDOMETER_USERDISTANCE] = {M4SH_TYPE_PEDOMETER, 0xc, 4},
[M4SH_REG_PEDOMETER_TOTALDISTANCE] = {M4SH_TYPE_PEDOMETER, 0x10, 4},
[M4SH_REG_PEDOMETER_FLOORSCLIMBED] = {M4SH_TYPE_PEDOMETER, 0x14, 2},
[M4SH_REG_PEDOMETER_CURRENTSPEED] = {M4SH_TYPE_PEDOMETER, 0x16, 2},
[M4SH_REG_TCMD_OPCODE] = {M4SH_TYPE_TCMD, 0x0, 1},
[M4SH_REG_LOG_LOGENABLE] = {M4SH_TYPE_LOG, 0x0, 8},
[M4SH_REG_LOG_ISLOGIMMEDIATE] = {M4SH_TYPE_LOG, 0x8, 1},
[M4SH_REG_FUSION_VERSION] = {M4SH_TYPE_FUSION, 0x0, 1},
[M4SH_REG_FUSION_DUMMY] = {M4SH_TYPE_FUSION, 0x1, 1},
[M4SH_REG_FUSION_SAMPLERATE] = {M4SH_TYPE_FUSION, 0x2, 2},
[M4SH_REG_FUSION_EULERPITCH] = {M4SH_TYPE_FUSION, 0x4, 4},
[M4SH_REG_FUSION_EULERROLL] = {M4SH_TYPE_FUSION, 0x8, 4},
[M4SH_REG_FUSION_EULERYAW] = {M4SH_TYPE_FUSION, 0xc, 4},
[M4SH_REG_FUSION_LOCALX] = {M4SH_TYPE_FUSION, 0x10, 4},
[M4SH_REG_FUSION_LOCALY] = {M4SH_TYPE_FUSION, 0x14, 4},
[M4SH_REG_FUSION_LOCALZ] = {M4SH_TYPE_FUSION, 0x18, 4},
[M4SH_REG_FUSION_GRAVITYX] = {M4SH_TYPE_FUSION, 0x1c, 4},
[M4SH_REG_FUSION_GRAVITYY] = {M4SH_TYPE_FUSION, 0x20, 4},
[M4SH_REG_FUSION_GRAVITYZ] = {M4SH_TYPE_FUSION, 0x24, 4},
[M4SH_REG_FUSION_ROTATIONVECTOR] = {M4SH_TYPE_FUSION, 0x28, 16},
[M4SH_REG_FUSION_HEADING] = {M4SH_TYPE_FUSION, 0x38, 2},
[M4SH_REG_FUSION_HEADING_ACCURACY] = {M4SH_TYPE_FUSION, 0x3a, 1},
[M4SH_REG_COMPASS_VERSION] = {M4SH_TYPE_COMPASS, 0x0, 1},
[M4SH_REG_COMPASS_DUMMY] = {M4SH_TYPE_COMPASS, 0x1, 1},
[M4SH_REG_COMPASS_SAMPLERATE] = {M4SH_TYPE_COMPASS, 0x2, 2},
[M4SH_REG_COMPASS_X] = {M4SH_TYPE_COMPASS, 0x4, 4},
[M4SH_REG_COMPASS_Y] = {M4SH_TYPE_COMPASS, 0x8, 4},
[M4SH_REG_COMPASS_Z] = {M4SH_TYPE_COMPASS, 0xc, 4},
[M4SH_REG_COMPASS_ACCURACY] = {M4SH_TYPE_COMPASS, 0x10, 1},
[M4SH_REG_GYRO_VERSION] = {M4SH_TYPE_GYRO, 0x0, 1},
[M4SH_REG_GYRO_DUMMY] = {M4SH_TYPE_GYRO, 0x1, 1},
[M4SH_REG_GYRO_SAMPLERATE] = {M4SH_TYPE_GYRO, 0x2, 2},
[M4SH_REG_GYRO_X] = {M4SH_TYPE_GYRO, 0x4, 4},
[M4SH_REG_GYRO_Y] = {M4SH_TYPE_GYRO, 0x8, 4},
[M4SH_REG_GYRO_Z] = {M4SH_TYPE_GYRO, 0xc, 4},
[M4SH_REG_METS_ENABLE] = {M4SH_TYPE_METS, 0x0, 1},
[M4SH_REG_METS_METSACTIVITY] = {M4SH_TYPE_METS, 0x1, 1},
[M4SH_REG_METS_MSSAMPLETIME] = {M4SH_TYPE_METS, 0x2, 2},
[M4SH_REG_METS_METS] = {M4SH_TYPE_METS, 0x4, 4},
[M4SH_REG_METS_CALORIES] = {M4SH_TYPE_METS, 0x8, 4},
[M4SH_REG_METS_HEALTHYMINUTES] = {M4SH_TYPE_METS, 0xc, 4},
[M4SH_REG_METS_METS_NO_RMR] = {M4SH_TYPE_METS, 0x10, 4},
[M4SH_REG_METS_CALORIES_NO_RMR] = {M4SH_TYPE_METS, 0x14, 4},
[M4SH_REG_USERSETTINGS_SCREENSTATUS] = {M4SH_TYPE_USERSETTINGS, 0x0, 1},
[M4SH_REG_USERSETTINGS_USERAGE] = {M4SH_TYPE_USERSETTINGS, 0x1, 1},
[M4SH_REG_USERSETTINGS_USERGENDER] = {M4SH_TYPE_USERSETTINGS, 0x2, 1},
[M4SH_REG_USERSETTINGS_USERHEIGHT] = {M4SH_TYPE_USERSETTINGS, 0x3, 1},
[M4SH_REG_USERSETTINGS_USERWEIGHT] = {M4SH_TYPE_USERSETTINGS, 0x4, 2},
[M4SH_REG_USERSETTINGS_AUDIOSTATUS] = {M4SH_TYPE_USERSETTINGS, 0x6, 1},
[M4SH_REG_USERSETTINGS_RTCRESET] = {M4SH_TYPE_USERSETTINGS, 0x7, 1},
[M4SH_REG_POWER_VERSION] = {M4SH_TYPE_POWER, 0x0, 1},
[M4SH_REG_POWER_ENABLE] = {M4SH_TYPE_POWER, 0x1, 1},
[M4SH_REG_POWER_STILLMODETIMEOUT] = {M4SH_TYPE_POWER, 0x2, 2},
[M4SH_REG_POWER_MOTIONDURATION] = {M4SH_TYPE_POWER, 0x4, 1},
[M4SH_REG_POWER_MOTIONTHRESHOLD] = {M4SH_TYPE_POWER, 0x5, 1},
[M4SH_REG_POWER_NOMOTIONDURATION] = {M4SH_TYPE_POWER, 0x6, 1},
[M4SH_REG_POWER_NOMOTIONTHRESHOLD] = {M4SH_TYPE_POWER, 0x7, 1},
[M4SH_REG_POWER_DEVICESTATE] = {M4SH_TYPE_POWER, 0x8, 1},
[M4SH_REG_LOCATION_VERSION] = {M4SH_TYPE_LOCATION, 0x0, 1},
[M4SH_REG_LOCATION_SOURCE] = {M4SH_TYPE_LOCATION, 0x1, 1},
[M4SH_REG_LOCATION_SPEED] = {M4SH_TYPE_LOCATION, 0x2, 2},
[M4SH_REG_LOCATION_LATITUDE] = {M4SH_TYPE_LOCATION, 0x4, 4},
[M4SH_REG_LOCATION_LONGITUDE] = {M4SH_TYPE_LOCATION, 0x8, 4},
[M4SH_REG_LOCATION_ALTITUDE] = {M4SH_TYPE_LOCATION, 0xc, 2},
[M4SH_REG_DOWNLOAD_COMMAND] = {M4SH_TYPE_DOWNLOAD, 0x0, 1},
[M4SH_REG_DOWNLOAD_STATUS] = {M4SH_TYPE_DOWNLOAD, 0x1, 1},
[M4SH_REG_DOWNLOAD_SIZE] = {M4SH_TYPE_DOWNLOAD, 0x2, 2},
[M4SH_REG_DOWNLOAD_CHECKSUM] = {M4SH_TYPE_DOWNLOAD, 0x4, 4},
[M4SH_REG_DOWNLOAD_FILENAME] = {M4SH_TYPE_DOWNLOAD, 0x8, 16},
[M4SH_REG_DOWNLOAD_PACKET] = {M4SH_TYPE_DOWNLOAD, 0x18, 2048},
[M4SH_REG_AUDIO_VERSION] = {M4SH_TYPE_AUDIO, 0x0, 1},
[M4SH_REG_AUDIO_ENABLE] = {M4SH_TYPE_AUDIO, 0x1, 1},
[M4SH_REG_AUDIO_DUMMY] = {M4SH_TYPE_AUDIO, 0x2, 2},
[M4SH_REG_AUDIO_TOTALPACKETS] = {M4SH_TYPE_AUDIO, 0x4, 4},
[M4SH_REG_TIMEPIECE_VERSION] = {M4SH_TYPE_TIMEPIECE, 0x0, 1},
[M4SH_REG_TIMEPIECE_ENABLE] = {M4SH_TYPE_TIMEPIECE, 0x1, 1},
[M4SH_REG_TIMEPIECE_SAMPLERATE] = {M4SH_TYPE_TIMEPIECE, 0x2, 2},
[M4SH_REG_TIMEPIECE_OFFSETSTEPS] = {M4SH_TYPE_TIMEPIECE, 0x4, 4},
[M4SH_REG_WRIST_VERSION] = {M4SH_TYPE_WRIST, 0x0, 1},
[M4SH_REG_WRIST_ENABLE] = {M4SH_TYPE_WRIST, 0x1, 1},
[M4SH_REG_WRIST_INTERRUPTREASON] = {M4SH_TYPE_WRIST, 0x2, 1},
[M4SH_REG_WRIST_HOSTRESPONSE] = {M4SH_TYPE_WRIST, 0x3, 1},
[M4SH_REG_WRIST_FMONCHIP] = {M4SH_TYPE_WRIST, 0x4, 2},
[M4SH_REG_WRIST_FMONFILE] = {M4SH_TYPE_WRIST, 0x6, 2},
[M4SH_REG_GESTURE_VERSION] = {M4SH_TYPE_GESTURE, 0x0, 1},
[M4SH_REG_GESTURE_GESTURE1] = {M4SH_TYPE_GESTURE, 0x1, 1},
[M4SH_REG_GESTURE_CONFIDENCE1] = {M4SH_TYPE_GESTURE, 0x2, 1},
[M4SH_REG_GESTURE_VALUE1] = {M4SH_TYPE_GESTURE, 0x3, 1},
[M4SH_REG_GESTURE_GESTURE2] = {M4SH_TYPE_GESTURE, 0x4, 1},
[M4SH_REG_GESTURE_CONFIDENCE2] = {M4SH_TYPE_GESTURE, 0x5, 1},
[M4SH_REG_GESTURE_VALUE2] = {M4SH_TYPE_GESTURE, 0x6, 1},
[M4SH_REG_GESTURE_GESTURE3] = {M4SH_TYPE_GESTURE, 0x7, 1},
[M4SH_REG_GESTURE_CONFIDENCE3] = {M4SH_TYPE_GESTURE, 0x8, 1},
[M4SH_REG_GESTURE_VALUE3] = {M4SH_TYPE_GESTURE, 0x9, 1},
[M4SH_REG_PASSIVE_ENABLE] = {M4SH_TYPE_PASSIVE, 0x0, 1},
[M4SH_REG_PASSIVE_DUMMY] = {M4SH_TYPE_PASSIVE, 0x1, 1},
[M4SH_REG_PASSIVE_DUMMY1] = {M4SH_TYPE_PASSIVE, 0x2, 2},
[M4SH_REG_PASSIVE_TIMESTAMP] = {M4SH_TYPE_PASSIVE, 0x4, 48},
[M4SH_REG_PASSIVE_STEPS] = {M4SH_TYPE_PASSIVE, 0x34, 24},
[M4SH_REG_PASSIVE_CALORIES] = {M4SH_TYPE_PASSIVE, 0x4c, 24},
[M4SH_REG_PASSIVE_HEARTRATE] = {M4SH_TYPE_PASSIVE, 0x64, 24},
[M4SH_REG_PASSIVE_HRCONFIDENCE] = {M4SH_TYPE_PASSIVE, 0x7c, 12},
[M4SH_REG_PASSIVE_HEALTHYMINUTES] = {M4SH_TYPE_PASSIVE, 0x88, 12},
[M4SH_REG_EMG_SIGNALCOUNT] = {M4SH_TYPE_EMG, 0x0, 1},
[M4SH_REG_EMG_DUMMY] = {M4SH_TYPE_EMG, 0x1, 1},
[M4SH_REG_EMG_SAMPLERATE] = {M4SH_TYPE_EMG, 0x2, 2},
[M4SH_REG_EMG_SIGNALS] = {M4SH_TYPE_EMG, 0x4, 326},
[M4SH_REG_HEARTRATE_ENABLE] = {M4SH_TYPE_HEARTRATE, 0x0, 4},
[M4SH_REG_HEARTRATE_APSAMPLERATE] = {M4SH_TYPE_HEARTRATE, 0x4, 4},
[M4SH_REG_HEARTRATE_HEARTRATE] = {M4SH_TYPE_HEARTRATE, 0x8, 2},
[M4SH_REG_HEARTRATE_CONFIDENCE] = {M4SH_TYPE_HEARTRATE, 0xa, 1},
[M4SH_REG_HRSENSOR_VERSION] = {M4SH_TYPE_HRSENSOR, 0x0, 1},
[M4SH_REG_HRSENSOR_DUMMY] = {M4SH_TYPE_HRSENSOR, 0x1, 1},
[M4SH_REG_HRSENSOR_SAMPLERATE] = {M4SH_TYPE_HRSENSOR, 0x2, 2},
[M4SH_REG_HRSENSOR_RAWVALUE] = {M4SH_TYPE_HRSENSOR, 0x4, 4},
[M4SH_REG_HRSENSOR_REGADDR] = {M4SH_TYPE_HRSENSOR, 0x8, 1},
[M4SH_REG_HRSENSOR_REGVALUE] = {M4SH_TYPE_HRSENSOR, 0x9, 3},
[M4SH_REG_HRSENSOR_REGRWCMD] = {M4SH_TYPE_HRSENSOR, 0xc, 1},
[M4SH_REG_LIGHTSENSOR_VERSION] = {M4SH_TYPE_LIGHTSENSOR, 0x0, 1},
[M4SH_REG_LIGHTSENSOR_DUMMY] = {M4SH_TYPE_LIGHTSENSOR, 0x1, 1},
[M4SH_REG_LIGHTSENSOR_SAMPLERATE] = {M4SH_TYPE_LIGHTSENSOR, 0x2, 2},
[M4SH_REG_LIGHTSENSOR_SIGNAL] = {M4SH_TYPE_LIGHTSENSOR, 0x4, 2},
[M4SH_REG_DEBUG_CMD] = {M4SH_TYPE_DEBUG, 0x0, 1},
};
static const unsigned int bank_size_tbl[M4SH_TYPE__NUM] = {
[M4SH_TYPE_ACCEL] = 28,
[M4SH_TYPE_TEMP] = 8,
[M4SH_TYPE_GENERAL] = 17,
[M4SH_TYPE_PRESSURE] = 23,
[M4SH_TYPE_PEDOMETER] = 24,
[M4SH_TYPE_TCMD] = 1,
[M4SH_TYPE_LOG] = 9,
[M4SH_TYPE_FUSION] = 59,
[M4SH_TYPE_COMPASS] = 17,
[M4SH_TYPE_GYRO] = 16,
[M4SH_TYPE_METS] = 24,
[M4SH_TYPE_USERSETTINGS] = 8,
[M4SH_TYPE_POWER] = 9,
[M4SH_TYPE_LOCATION] = 14,
[M4SH_TYPE_DOWNLOAD] = 2072,
[M4SH_TYPE_AUDIO] = 8,
[M4SH_TYPE_TIMEPIECE] = 8,
[M4SH_TYPE_WRIST] = 8,
[M4SH_TYPE_GESTURE] = 10,
[M4SH_TYPE_PASSIVE] = 148,
[M4SH_TYPE_EMG] = 330,
[M4SH_TYPE_HEARTRATE] = 11,
[M4SH_TYPE_HRSENSOR] = 13,
[M4SH_TYPE_LIGHTSENSOR] = 6,
[M4SH_TYPE_DEBUG] = 1,
};
#endif /*__M4SENSORHUB_MEM_INTERNAL_H__ */