blob: 12ffe1e36490c601c604a5da664c8a629f2186e3 [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_REPORTLATENCY] = {M4SH_TYPE_ACCEL, 0x4, 2},
[M4SH_REG_ACCEL_FLUSH] = {M4SH_TYPE_ACCEL, 0x6, 1},
[M4SH_REG_ACCEL_PADDING] = {M4SH_TYPE_ACCEL, 0x7, 1},
[M4SH_REG_ACCEL_X] = {M4SH_TYPE_ACCEL, 0x8, 4},
[M4SH_REG_ACCEL_Y] = {M4SH_TYPE_ACCEL, 0xc, 4},
[M4SH_REG_ACCEL_Z] = {M4SH_TYPE_ACCEL, 0x10, 4},
[M4SH_REG_ACCEL_SCALEDMAGSQUARED] = {M4SH_TYPE_ACCEL, 0x14, 4},
[M4SH_REG_ACCEL_MAGNITUDE] = {M4SH_TYPE_ACCEL, 0x18, 4},
[M4SH_REG_ACCEL_TILT] = {M4SH_TYPE_ACCEL, 0x1c, 2},
[M4SH_REG_ACCEL_ORIENTATION] = {M4SH_TYPE_ACCEL, 0x1e, 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, 2},
[M4SH_REG_GENERAL_NOWAKEINTENABLE] = {M4SH_TYPE_GENERAL, 0xc, 4},
[M4SH_REG_GENERAL_WAKEINTENABLE] = {M4SH_TYPE_GENERAL, 0x10, 4},
[M4SH_REG_GENERAL_NOWAKEINTSTATUS] = {M4SH_TYPE_GENERAL, 0x14, 4},
[M4SH_REG_GENERAL_WAKEINTSTATUS] = {M4SH_TYPE_GENERAL, 0x18, 4},
[M4SH_REG_GENERAL_NUMBATCHSAMPLES] = {M4SH_TYPE_GENERAL, 0x1c, 4},
[M4SH_REG_GENERAL_READBATCHSAMPLES] = {M4SH_TYPE_GENERAL, 0x20, 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_PEDOMETER_STEPFREQUENCY] = {M4SH_TYPE_PEDOMETER, 0x18, 2},
[M4SH_REG_PEDOMETER_STEPLENGTH] = {M4SH_TYPE_PEDOMETER, 0x1a, 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_LINEARACCEL] = {M4SH_TYPE_FUSION, 0x4, 12},
[M4SH_REG_FUSION_GRAVITY] = {M4SH_TYPE_FUSION, 0x10, 12},
[M4SH_REG_FUSION_ROTATIONVECTOR] = {M4SH_TYPE_FUSION, 0x1c, 20},
[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_REPORTLATENCY] = {M4SH_TYPE_GYRO, 0x4, 2},
[M4SH_REG_GYRO_FLUSH] = {M4SH_TYPE_GYRO, 0x6, 1},
[M4SH_REG_GYRO_PADDING] = {M4SH_TYPE_GYRO, 0x7, 1},
[M4SH_REG_GYRO_X] = {M4SH_TYPE_GYRO, 0x8, 4},
[M4SH_REG_GYRO_Y] = {M4SH_TYPE_GYRO, 0xc, 4},
[M4SH_REG_GYRO_Z] = {M4SH_TYPE_GYRO, 0x10, 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_METS_SIGMO_ENABLE] = {M4SH_TYPE_METS, 0x18, 1},
[M4SH_REG_METS_DUMMY8] = {M4SH_TYPE_METS, 0x19, 1},
[M4SH_REG_METS_DUMMY16] = {M4SH_TYPE_METS, 0x1a, 2},
[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_USERSETTINGS_USERWALKCORRECTIONFACTOR] = {M4SH_TYPE_USERSETTINGS, 0x8, 1},
[M4SH_REG_USERSETTINGS_USERRUNCORRECTIONFACTOR] = {M4SH_TYPE_USERSETTINGS, 0x9, 1},
[M4SH_REG_USERSETTINGS_DUMMY16] = {M4SH_TYPE_USERSETTINGS, 0xa, 2},
[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_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_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, 1},
[M4SH_REG_HEARTRATE_CONFIDENCE] = {M4SH_TYPE_HEARTRATE, 0x1, 1},
[M4SH_REG_HEARTRATE_HEARTRATE] = {M4SH_TYPE_HEARTRATE, 0x2, 2},
[M4SH_REG_HEARTRATE_APSAMPLERATE] = {M4SH_TYPE_HEARTRATE, 0x4, 4},
[M4SH_REG_HEARTRATE_PREDICTOR] = {M4SH_TYPE_HEARTRATE, 0x8, 1},
[M4SH_REG_HEARTRATE_DUMMY8] = {M4SH_TYPE_HEARTRATE, 0x9, 1},
[M4SH_REG_HEARTRATE_DUMMY16] = {M4SH_TYPE_HEARTRATE, 0xa, 2},
[M4SH_REG_HRSENSOR_ACTIVEBUF] = {M4SH_TYPE_HRSENSOR, 0x0, 1},
[M4SH_REG_HRSENSOR_READBUFFEREDDATA] = {M4SH_TYPE_HRSENSOR, 0x1, 1},
[M4SH_REG_HRSENSOR_SAMPLERATE] = {M4SH_TYPE_HRSENSOR, 0x2, 2},
[M4SH_REG_HRSENSOR_NUMBUFFEREDSAMPLES] = {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},
[M4SH_REG_ADSSENSOR_MODE] = {M4SH_TYPE_ADSSENSOR, 0x0, 1},
[M4SH_REG_ADSSENSOR_READBUFFEREDDATA] = {M4SH_TYPE_ADSSENSOR, 0x1, 1},
[M4SH_REG_ADSSENSOR_SAMPLERATE] = {M4SH_TYPE_ADSSENSOR, 0x2, 2},
[M4SH_REG_ADSSENSOR_RAWVALUE] = {M4SH_TYPE_ADSSENSOR, 0x4, 4},
[M4SH_REG_ADSSENSOR_NUMBUFFEREDSAMPLES] = {M4SH_TYPE_ADSSENSOR, 0x8, 4},
[M4SH_REG_ADSSENSOR_REGRWCMD] = {M4SH_TYPE_ADSSENSOR, 0xc, 1},
[M4SH_REG_ADSSENSOR_REGADDR] = {M4SH_TYPE_ADSSENSOR, 0xd, 1},
[M4SH_REG_ADSFEATURE_ENABLE] = {M4SH_TYPE_ADSFEATURE, 0x0, 4},
[M4SH_REG_ADSFEATURE_APSAMPLERATE] = {M4SH_TYPE_ADSFEATURE, 0x4, 4},
[M4SH_REG_ADSFEATURE_HEARTRATE] = {M4SH_TYPE_ADSFEATURE, 0x8, 2},
[M4SH_REG_ADSFEATURE_CONFIDENCE] = {M4SH_TYPE_ADSFEATURE, 0xa, 1},
[M4SH_REG_SIMPLEFS_RESPONSE] = {M4SH_TYPE_SIMPLEFS, 0x0, 4},
[M4SH_REG_SIMPLEFS_COMMAND] = {M4SH_TYPE_SIMPLEFS, 0x4, 20},
[M4SH_REG_SIMPLEFS_PACKET] = {M4SH_TYPE_SIMPLEFS, 0x18, 228},
};
static const unsigned int bank_size_tbl[M4SH_TYPE__NUM] = {
[M4SH_TYPE_ACCEL] = 32,
[M4SH_TYPE_GENERAL] = 33,
[M4SH_TYPE_PRESSURE] = 23,
[M4SH_TYPE_PEDOMETER] = 28,
[M4SH_TYPE_TCMD] = 1,
[M4SH_TYPE_LOG] = 9,
[M4SH_TYPE_FUSION] = 48,
[M4SH_TYPE_COMPASS] = 17,
[M4SH_TYPE_GYRO] = 20,
[M4SH_TYPE_METS] = 28,
[M4SH_TYPE_USERSETTINGS] = 12,
[M4SH_TYPE_POWER] = 9,
[M4SH_TYPE_DOWNLOAD] = 2072,
[M4SH_TYPE_GESTURE] = 10,
[M4SH_TYPE_PASSIVE] = 148,
[M4SH_TYPE_EMG] = 330,
[M4SH_TYPE_HEARTRATE] = 12,
[M4SH_TYPE_HRSENSOR] = 13,
[M4SH_TYPE_LIGHTSENSOR] = 6,
[M4SH_TYPE_DEBUG] = 1,
[M4SH_TYPE_ADSSENSOR] = 14,
[M4SH_TYPE_ADSFEATURE] = 11,
[M4SH_TYPE_SIMPLEFS] = 252,
};
#endif /*__M4SENSORHUB_MEM_INTERNAL_H__ */