/* * 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 . * */ /***************************** 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__ */