|
@@ -21,7 +21,63 @@
|
|
|
#include <linux/iio/iio.h>
|
|
|
#include <linux/iio/sysfs.h>
|
|
|
|
|
|
-#include "adxrs450.h"
|
|
|
+#define ADXRS450_STARTUP_DELAY 50 /* ms */
|
|
|
+
|
|
|
+/* The MSB for the spi commands */
|
|
|
+#define ADXRS450_SENSOR_DATA (0x20 << 24)
|
|
|
+#define ADXRS450_WRITE_DATA (0x40 << 24)
|
|
|
+#define ADXRS450_READ_DATA (0x80 << 24)
|
|
|
+
|
|
|
+#define ADXRS450_RATE1 0x00 /* Rate Registers */
|
|
|
+#define ADXRS450_TEMP1 0x02 /* Temperature Registers */
|
|
|
+#define ADXRS450_LOCST1 0x04 /* Low CST Memory Registers */
|
|
|
+#define ADXRS450_HICST1 0x06 /* High CST Memory Registers */
|
|
|
+#define ADXRS450_QUAD1 0x08 /* Quad Memory Registers */
|
|
|
+#define ADXRS450_FAULT1 0x0A /* Fault Registers */
|
|
|
+#define ADXRS450_PID1 0x0C /* Part ID Register 1 */
|
|
|
+#define ADXRS450_SNH 0x0E /* Serial Number Registers, 4 bytes */
|
|
|
+#define ADXRS450_SNL 0x10
|
|
|
+#define ADXRS450_DNC1 0x12 /* Dynamic Null Correction Registers */
|
|
|
+/* Check bits */
|
|
|
+#define ADXRS450_P 0x01
|
|
|
+#define ADXRS450_CHK 0x02
|
|
|
+#define ADXRS450_CST 0x04
|
|
|
+#define ADXRS450_PWR 0x08
|
|
|
+#define ADXRS450_POR 0x10
|
|
|
+#define ADXRS450_NVM 0x20
|
|
|
+#define ADXRS450_Q 0x40
|
|
|
+#define ADXRS450_PLL 0x80
|
|
|
+#define ADXRS450_UV 0x100
|
|
|
+#define ADXRS450_OV 0x200
|
|
|
+#define ADXRS450_AMP 0x400
|
|
|
+#define ADXRS450_FAIL 0x800
|
|
|
+
|
|
|
+#define ADXRS450_WRERR_MASK (0x7 << 29)
|
|
|
+
|
|
|
+#define ADXRS450_MAX_RX 4
|
|
|
+#define ADXRS450_MAX_TX 4
|
|
|
+
|
|
|
+#define ADXRS450_GET_ST(a) ((a >> 26) & 0x3)
|
|
|
+
|
|
|
+enum {
|
|
|
+ ID_ADXRS450,
|
|
|
+ ID_ADXRS453,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * struct adxrs450_state - device instance specific data
|
|
|
+ * @us: actual spi_device
|
|
|
+ * @buf_lock: mutex to protect tx and rx
|
|
|
+ * @tx: transmit buffer
|
|
|
+ * @rx: receive buffer
|
|
|
+ **/
|
|
|
+struct adxrs450_state {
|
|
|
+ struct spi_device *us;
|
|
|
+ struct mutex buf_lock;
|
|
|
+ __be32 tx ____cacheline_aligned;
|
|
|
+ __be32 rx;
|
|
|
+
|
|
|
+};
|
|
|
|
|
|
/**
|
|
|
* adxrs450_spi_read_reg_16() - read 2 bytes from a register pair
|