aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/sensor/yas_pcb_test.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sensor/yas_pcb_test.h')
-rw-r--r--drivers/sensor/yas_pcb_test.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/drivers/sensor/yas_pcb_test.h b/drivers/sensor/yas_pcb_test.h
new file mode 100644
index 0000000..40d9dbd
--- /dev/null
+++ b/drivers/sensor/yas_pcb_test.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2010-2011 Yamaha Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+/*
+ * File yas_pcb_test.h
+ * Date 2013/1/22
+ * Revision 1.4.3
+ */
+
+#ifndef __YAS_PCB_TEST_H__
+#define __YAS_PCB_TEST_H__
+
+#include "yas_types.h"
+
+/* extra */
+#define YAS_PCBTEST_EXTRA
+
+/* error code */
+#define YAS_PCB_NO_ERROR (0)
+#define YAS_PCB_ERROR_I2C (-1)
+#define YAS_PCB_ERROR_POWER (-2)
+#define YAS_PCB_ERROR_TEST_ORDER (-3)
+#define YAS_PCB_ERROR_INTERRUPT (-4)
+#define YAS_PCB_ERROR_BUSY (-5)
+#define YAS_PCB_ERROR_OVERFLOW (-6)
+#define YAS_PCB_ERROR_UNDERFLOW (-7)
+#define YAS_PCB_ERROR_DIRCALC (-8)
+#define YAS_PCB_ERROR_NOT_SUPPORTED (-9)
+#define YAS_PCB_ERROR_CALREG (-10)
+#define YAS_PCB_ERROR_ARG (-128)
+
+/* addr */
+#define YAS_PCB_ADDR_SLAVE (0x2E)
+
+#define YAS_PCB_ADDR_ID (0x80)
+#define YAS_PCB_ADDR_COIL (0x81)
+#define YAS_PCB_ADDR_MEASURE_COMMAND (0x82)
+#define YAS_PCB_ADDR_CONFIG (0x83)
+#define YAS_PCB_ADDR_MEASURE_INTERVAL (0x84)
+#define YAS_PCB_ADDR_OFFSET (0x85)
+#define YAS_PCB_ADDR_TEST1 (0x88)
+#define YAS_PCB_ADDR_TEST2 (0x89)
+#define YAS_PCB_ADDR_CAL (0x90)
+#define YAS_PCB_ADDR_MEASURE_DATA (0xB0)
+
+/* V Core */
+#define YAS_VCORE (18)
+#define YAS_PCB_NOISE_OVERFLOW (6000)
+#define YAS_PCB_NOISE_UNDERFLOW (2000)
+#define YAS_PCB_NOISE_INTERVAL (50)
+
+struct yas_pcb_test_callback {
+ int (*power_on)(void);
+ int (*power_off)(void);
+ int (*i2c_open)(void);
+ int (*i2c_close)(void);
+ int (*i2c_write)(uint8_t, uint8_t, const uint8_t *, int);
+ int (*i2c_read)(uint8_t, uint8_t, uint8_t *, int);
+ void (*msleep)(int);
+ int (*read_intpin)(int *);
+};
+
+struct yas_pcb_test {
+ int (*power_on_and_device_check)(int *);
+ int (*initialization)(void);
+ int (*offset_control_measurement_and_set_offset_register)
+ (int *, int *, int *);
+ int (*direction_measurement)(int *);
+ int (*sensitivity_measurement_of_magnetic_sensor_by_test_coil)
+ (int *, int *);
+ int (*magnetic_field_level_check)(int *, int *, int *);
+ int (*noise_level_check)(int *, int *, int *);
+ int (*power_off)(void);
+ struct yas_pcb_test_callback callback;
+};
+
+/* prototype functions */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int yas_pcb_test_init(struct yas_pcb_test *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ! __YAS_PCB_TEST_H__ */
+
+/* end of file */