55 #include "lib/sensors.h" 64 #define TSL2561_SENSOR_REF 0 65 #define TSL2563_SENSOR_REF 1 70 #define TSL2563_EXPECTED_PARTNO 0x30 71 #define TSL2561_EXPECTED_PARTNO 0x50 73 #ifndef TSL256X_CONF_REF 74 #define TSL256X_REF TSL2561_SENSOR_REF 76 #define TSL256X_REF TSL256X_CONF_REF 79 #if TSL256X_CONF_REF == TSL2561_SENSOR 80 #define TSL256X_ADDR 0x29 81 #define TSL256X_EXPECTED_PARTNO TSL2561_EXPECTED_PARTNO 83 #define TSL256X_ADDR 0x39 84 #define TSL256X_EXPECTED_PARTNO TSL2563_EXPECTED_PARTNO 94 #define TSL256X_CONTROL 0x00 95 #define TSL256X_TIMMING 0x01 96 #define TSL256X_THRLOWLOW 0x02 97 #define TSL256X_THRLOWHIGH 0x03 98 #define TSL256X_THRHIGHLOW 0x04 99 #define TSL256X_THRHIGHHIGH 0x05 100 #define TSL256X_INTERRUPT 0x06 101 #define TSL256X_CRC 0x08 102 #define TSL256X_ID_REG 0x0A 103 #define TSL256X_D0LOW 0x0C 104 #define TSL256X_D0HIGH 0x0D 105 #define TSL256X_D1LOW 0x0E 106 #define TSL256X_D1HIGH 0x0F 109 #define TSL256X_COMMAND 0xA0 110 #define TSL256X_CLEAR_INTERRUPT 0x40 112 #define TSL256X_CONTROL_POWER_ON 0x03 113 #define TSL256X_CONTROL_POWER_OFF 0x00 114 #define TSL256X_TIMMING_GAIN 0x10 115 #define TSL256X_TIMMING_MANUAL 0x08 116 #define TSL256X_TIMMING_INTEG_MANUAL 0x03 117 #define TSL256X_TIMMING_INTEG_402MS 0x02 118 #define TSL256X_TIMMING_INTEG_101MS 0x01 119 #define TSL256X_TIMMING_INTEG_13_7MS 0x00 120 #define TSL256X_TIMMING_INTEG_MASK 0x03 122 #define TSL256X_G16X_402MS (TSL256X_TIMMING_INTEG_402MS + TSL256X_TIMMING_GAIN) 123 #define TSL256X_G1X_402MS TSL256X_TIMMING_INTEG_402MS 124 #define TSL256X_G1X_101MS TSL256X_TIMMING_INTEG_101MS 125 #define TSL256X_G1X_13_7MS TSL256X_TIMMING_INTEG_13_7MS 127 #define TSL256X_INTR_SHIFT 0x04 128 #define TSL256X_INTR_DISABLED 0x00 129 #define TSL256X_INTR_LEVEL 0x01 130 #define TSL256X_INTR_SMB_ALERT 0x02 131 #define TSL256X_INTR_TEST 0x03 133 #define TSL256X_INT_PERSIST_EVERY 0x00 134 #define TSL256X_INT_PERSIST_ANY 0x01 135 #define TSL256X_INT_PERSIST_2_CYCLES 0x02 136 #define TSL256X_INT_PERSIST_3_CYCLES 0x03 137 #define TSL256X_INT_PERSIST_4_CYCLES 0x04 138 #define TSL256X_INT_PERSIST_5_CYCLES 0x05 139 #define TSL256X_INT_PERSIST_6_CYCLES 0x06 140 #define TSL256X_INT_PERSIST_7_CYCLES 0x07 141 #define TSL256X_INT_PERSIST_8_CYCLES 0x08 142 #define TSL256X_INT_PERSIST_9_CYCLES 0x09 143 #define TSL256X_INT_PERSIST_10_CYCLES 0x0A 144 #define TSL256X_INT_PERSIST_11_CYCLES 0x0B 145 #define TSL256X_INT_PERSIST_12_CYCLES 0x0C 146 #define TSL256X_INT_PERSIST_13_CYCLES 0x0D 147 #define TSL256X_INT_PERSIST_14_CYCLES 0x0E 148 #define TSL256X_INT_PERSIST_15_CYCLES 0x0F 150 #define TSL256X_ID_PARTNO_MASK 0xF0 151 #define TSL256X_ID_REV_MASK 0x0F 160 #define RATIO_SCALE 9 162 #define CHSCALE_TINT0 0x7517 163 #define CHSCALE_TINT1 0x0fe7 196 #define TSL256X_REGISTER_INT(ptr) tsl256x_int_callback = ptr; 197 extern void (*tsl256x_int_callback)(uint8_t value);
204 #define TSL256X_SUCCESS 0x00 205 #define TSL256X_LIGHT 0x01 206 #define TSL256X_ERROR -1 208 #define TSL256X_ACTIVE SENSORS_ACTIVE 209 #define TSL256X_INT_OVER HW_INT_OVER_THRS 210 #define TSL256X_INT_BELOW HW_INT_BELOW_THRS 211 #define TSL256X_INT_DISABLE HW_INT_DISABLE 212 #define TSL256X_TIMMING_CFG (HW_INT_DISABLE + 1) 214 #define TSL256X_VAL_READ 0x01 217 #define TSL256X_SENSOR "TSL256X Light Sensor" 219 extern const struct sensors_sensor tsl256x;
Implementation of a generic module controlling Zoul sensors.