Home
last modified time | relevance | path

Searched full:sensor (Results 1 – 25 of 1725) sorted by relevance

12345678910>>...69

/linux/drivers/media/i2c/ccs/
H A Dccs-core.c13 * Based on smia-sensor.c by Tuukka Toivonen <tuukkat76@gmail.com>
91 static int ccs_limit_ptr(struct ccs_sensor *sensor, unsigned int limit, in ccs_limit_ptr() argument
101 if (WARN_ON(!sensor->ccs_limits) || in ccs_limit_ptr()
106 *__ptr = sensor->ccs_limits + ccs_limit_offsets[limit].lim + offset; in ccs_limit_ptr()
111 void ccs_replace_limit(struct ccs_sensor *sensor, in ccs_replace_limit() argument
114 struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd); in ccs_replace_limit()
119 ret = ccs_limit_ptr(sensor, limit, offset, &ptr); in ccs_replace_limit()
131 u32 ccs_get_limit(struct ccs_sensor *sensor, unsigned int limit, in ccs_get_limit() argument
138 ret = ccs_limit_ptr(sensor, limit, offset, &ptr); in ccs_get_limit()
157 return ccs_reg_conv(sensor, ccs_limits[limit].reg, val); in ccs_get_limit()
[all …]
/linux/drivers/thermal/st/
H A Dst_thermal.c3 * ST Thermal Sensor Driver core routines
24 static int st_thermal_alloc_regfields(struct st_thermal_sensor *sensor) in st_thermal_alloc_regfields() argument
26 struct device *dev = sensor->dev; in st_thermal_alloc_regfields()
27 struct regmap *regmap = sensor->regmap; in st_thermal_alloc_regfields()
28 const struct reg_field *reg_fields = sensor->cdata->reg_fields; in st_thermal_alloc_regfields()
30 sensor->dcorrect = devm_regmap_field_alloc(dev, regmap, in st_thermal_alloc_regfields()
33 sensor->overflow = devm_regmap_field_alloc(dev, regmap, in st_thermal_alloc_regfields()
36 sensor->temp_data = devm_regmap_field_alloc(dev, regmap, in st_thermal_alloc_regfields()
39 if (IS_ERR(sensor->dcorrect) || in st_thermal_alloc_regfields()
40 IS_ERR(sensor->overflow) || in st_thermal_alloc_regfields()
[all …]
/linux/drivers/media/i2c/
H A Dov2680.c3 * Omnivision OV2680 CMOS Image Sensor driver
7 * Based on OV5640 Sensor Driver
205 /* Sensor control register tweaks */
272 static void ov2680_power_up(struct ov2680_dev *sensor) in ov2680_power_up() argument
274 if (!sensor->pwdn_gpio) in ov2680_power_up()
277 gpiod_set_value(sensor->pwdn_gpio, 0); in ov2680_power_up()
281 static void ov2680_power_down(struct ov2680_dev *sensor) in ov2680_power_down() argument
283 if (!sensor->pwdn_gpio) in ov2680_power_down()
286 gpiod_set_value(sensor->pwdn_gpio, 1); in ov2680_power_down()
290 static void ov2680_set_bayer_order(struct ov2680_dev *sensor, in ov2680_set_bayer_order() argument
[all …]
H A Dvd56g3.c99 /* The VD56G3 is a portrait image sensor with native resolution of 1124x1364. */
192 * Sensor support 8bits and 10bits output in both variants
263 static int vd56g3_poll_reg(struct vd56g3 *sensor, u32 reg, u8 poll_val, in vd56g3_poll_reg() argument
276 ret = regmap_read_poll_timeout(sensor->regmap, CCI_REG_ADDR(reg), val, in vd56g3_poll_reg()
286 static int vd56g3_wait_state(struct vd56g3 *sensor, int state, int *err) in vd56g3_wait_state() argument
288 return vd56g3_poll_reg(sensor, VD56G3_REG_SYSTEM_FSM, state, err); in vd56g3_wait_state()
350 static int vd56g3_read_expo_cluster(struct vd56g3 *sensor, bool force_cur_val) in vd56g3_read_expo_cluster() argument
362 cci_read(sensor->regmap, VD56G3_REG_APPLIED_COARSE_EXPOSURE, &exposure, in vd56g3_read_expo_cluster()
364 cci_read(sensor->regmap, VD56G3_REG_APPLIED_ANALOG_GAIN, &again, &ret); in vd56g3_read_expo_cluster()
365 cci_read(sensor->regmap, VD56G3_REG_APPLIED_DIGITAL_GAIN, &dgain, &ret); in vd56g3_read_expo_cluster()
[all …]
H A Dimx296.c3 * Driver for IMX296 CMOS Image Sensor from Sony
217 static int imx296_read(struct imx296 *sensor, u32 addr) in imx296_read() argument
222 ret = regmap_raw_read(sensor->regmap, addr & IMX296_REG_ADDR_MASK, data, in imx296_read()
230 static int imx296_write(struct imx296 *sensor, u32 addr, u32 value, int *err) in imx296_write() argument
238 ret = regmap_raw_write(sensor->regmap, addr & IMX296_REG_ADDR_MASK, in imx296_write()
241 dev_err(sensor->dev, "%u-bit write to 0x%04x failed: %d\n", in imx296_write()
251 static int imx296_power_on(struct imx296 *sensor) in imx296_power_on() argument
255 ret = regulator_bulk_enable(ARRAY_SIZE(sensor->supplies), in imx296_power_on()
256 sensor->supplies); in imx296_power_on()
262 ret = gpiod_direction_output(sensor->reset, 0); in imx296_power_on()
[all …]
H A Ds5k6a3.c3 * Samsung S5K6A3 image sensor driver
45 * struct s5k6a3 - fimc-is sensor data structure
47 * @subdev: the image sensor's v4l2 subdev
49 * @supplies: image sensor's voltage regulator supplies
50 * @gpio_reset: GPIO connected to the sensor's reset pin
52 * @format: media bus format at the sensor's source pad
126 struct s5k6a3 *sensor, struct v4l2_subdev_state *sd_state, in __s5k6a3_get_format() argument
132 return &sensor->format; in __s5k6a3_get_format()
139 struct s5k6a3 *sensor = sd_to_s5k6a3(sd); in s5k6a3_set_fmt() local
144 mf = __s5k6a3_get_format(sensor, sd_state, fmt->pad, fmt->which); in s5k6a3_set_fmt()
[all …]
H A Dov5648.c966 static int ov5648_read(struct ov5648_sensor *sensor, u16 address, u8 *value) in ov5648_read() argument
969 struct i2c_client *client = sensor->i2c_client; in ov5648_read()
989 static int ov5648_write(struct ov5648_sensor *sensor, u16 address, u8 value) in ov5648_write() argument
992 struct i2c_client *client = sensor->i2c_client; in ov5648_write()
1005 static int ov5648_write_sequence(struct ov5648_sensor *sensor, in ov5648_write_sequence() argument
1013 ret = ov5648_write(sensor, sequence[i].address, in ov5648_write_sequence()
1025 static int ov5648_update_bits(struct ov5648_sensor *sensor, u16 address, in ov5648_update_bits() argument
1031 ret = ov5648_read(sensor, address, &value); in ov5648_update_bits()
1038 ret = ov5648_write(sensor, address, value); in ov5648_update_bits()
1045 /* Sensor */
[all …]
H A Dov5640.c481 static inline bool ov5640_is_csi2(const struct ov5640_dev *sensor) in ov5640_is_csi2() argument
483 return sensor->ep.bus_type == V4L2_MBUS_CSI2_DPHY; in ov5640_is_csi2()
487 ov5640_formats(struct ov5640_dev *sensor) in ov5640_formats() argument
489 return ov5640_is_csi2(sensor) ? ov5640_csi2_formats in ov5640_formats()
494 ov5640_code_to_pixfmt(struct ov5640_dev *sensor, u32 code) in ov5640_code_to_pixfmt() argument
496 const struct ov5640_pixfmt *formats = ov5640_formats(sensor); in ov5640_code_to_pixfmt()
507 static u32 ov5640_code_to_bpp(struct ov5640_dev *sensor, u32 code) in ov5640_code_to_bpp() argument
509 const struct ov5640_pixfmt *format = ov5640_code_to_pixfmt(sensor, in ov5640_code_to_bpp()
1141 ov5640_timings(const struct ov5640_dev *sensor, in ov5640_timings() argument
1144 if (ov5640_is_csi2(sensor)) in ov5640_timings()
[all …]
H A Dmt9m114.c3 * mt9m114.c onsemi MT9M114 sensor driver
52 /* Sensor Core registers */
474 mt9m114_default_format_info(struct mt9m114 *sensor) in mt9m114_default_format_info() argument
476 if (sensor->bus_cfg.bus_type == V4L2_MBUS_CSI2_DPHY) in mt9m114_default_format_info()
483 mt9m114_format_info(struct mt9m114 *sensor, unsigned int pad, u32 code) in mt9m114_format_info() argument
494 if (sensor->bus_cfg.bus_type == V4L2_MBUS_CSI2_DPHY) in mt9m114_format_info()
507 return mt9m114_default_format_info(sensor); in mt9m114_format_info()
523 /* Sensor optimization */
658 static int mt9m114_poll_command(struct mt9m114 *sensor, u32 command) in mt9m114_poll_command() argument
665 ret = cci_read(sensor->regmap, MT9M114_COMMAND_REGISTER, &value, in mt9m114_poll_command()
[all …]
H A Dar0521.c159 static int ar0521_code_to_bpp(struct ar0521_dev *sensor) in ar0521_code_to_bpp() argument
161 switch (sensor->fmt.code) { in ar0521_code_to_bpp()
170 static int ar0521_write_regs(struct ar0521_dev *sensor, const __be16 *data, in ar0521_write_regs() argument
173 struct i2c_client *client = sensor->i2c_client; in ar0521_write_regs()
185 v4l2_err(&sensor->sd, "%s: I2C write error\n", __func__); in ar0521_write_regs()
192 static int ar0521_write_reg(struct ar0521_dev *sensor, u16 reg, u16 val) in ar0521_write_reg() argument
196 return ar0521_write_regs(sensor, buf, 2); in ar0521_write_reg()
199 static int ar0521_set_geometry(struct ar0521_dev *sensor) in ar0521_set_geometry() argument
202 u16 x = clamp((AR0521_WIDTH_MAX - sensor->fmt.width) / 2, in ar0521_set_geometry()
204 u16 y = clamp(((AR0521_HEIGHT_MAX - sensor->fmt.height) / 2) & ~1, in ar0521_set_geometry()
[all …]
H A Dimx415.c3 * Driver for the Sony IMX415 CMOS Image Sensor.
668 static int imx415_set_testpattern(struct imx415 *sensor, int val) in imx415_set_testpattern() argument
673 cci_write(sensor->regmap, IMX415_BLKLEVEL, 0x00, &ret); in imx415_set_testpattern()
674 cci_write(sensor->regmap, IMX415_TPG_EN_DUOUT, 0x01, &ret); in imx415_set_testpattern()
675 cci_write(sensor->regmap, IMX415_TPG_PATSEL_DUOUT, in imx415_set_testpattern()
677 cci_write(sensor->regmap, IMX415_TPG_COLORWIDTH, 0x01, &ret); in imx415_set_testpattern()
678 cci_write(sensor->regmap, IMX415_TESTCLKEN_MIPI, 0x20, &ret); in imx415_set_testpattern()
679 cci_write(sensor->regmap, IMX415_DIG_CLP_MODE, 0x00, &ret); in imx415_set_testpattern()
680 cci_write(sensor->regmap, IMX415_WRJ_OPEN, 0x00, &ret); in imx415_set_testpattern()
682 cci_write(sensor->regmap, IMX415_BLKLEVEL, in imx415_set_testpattern()
[all …]
H A Dvd55g1.c3 * Driver for VD55G1 global shutter sensor family driver
446 * This mode acquires 2 frames on the sensor, the first one is ditched
575 static const struct vd55g1_fmt_desc *vd55g1_get_fmt_desc(struct vd55g1 *sensor, in vd55g1_get_fmt_desc() argument
586 dev_warn(sensor->dev, "Unsupported code %d. default to 8 bpp\n", code); in vd55g1_get_fmt_desc()
591 static s32 vd55g1_get_pixel_rate(struct vd55g1 *sensor, in vd55g1_get_pixel_rate() argument
594 return sensor->mipi_rate / in vd55g1_get_pixel_rate()
595 vd55g1_get_fmt_desc(sensor, format->code)->bpp; in vd55g1_get_pixel_rate()
598 static unsigned int vd55g1_get_hblank_min(struct vd55g1 *sensor, in vd55g1_get_hblank_min() argument
608 vd55g1_get_fmt_desc(sensor, format->code)->bpp + in vd55g1_get_hblank_min()
610 (sensor->mipi_rate / MEGA); in vd55g1_get_hblank_min()
[all …]
/linux/drivers/iio/common/scmi_sensors/
H A Dscmi_iio.c4 * System Control and Management Interface(SCMI) based IIO sensor driver
44 struct scmi_iio_priv *sensor; in scmi_iio_sensor_update_cb() local
52 sensor = container_of(nb, struct scmi_iio_priv, sensor_update_nb); in scmi_iio_sensor_update_cb()
55 sensor->iio_buf[i] = sensor_update->readings[i].value; in scmi_iio_sensor_update_cb()
57 if (!sensor->sensor_info->timestamped) { in scmi_iio_sensor_update_cb()
71 tstamp_scale = sensor->sensor_info->tstamp_scale + in scmi_iio_sensor_update_cb()
81 scmi_iio_dev = sensor->indio_dev; in scmi_iio_sensor_update_cb()
82 iio_push_to_buffers_with_timestamp(scmi_iio_dev, sensor->iio_buf, in scmi_iio_sensor_update_cb()
89 struct scmi_iio_priv *sensor = iio_priv(iio_dev); in scmi_iio_buffer_preenable() local
93 if (sensor->sensor_info->timestamped) in scmi_iio_buffer_preenable()
[all …]
/linux/drivers/input/rmi4/
H A Drmi_2d_sensor.c22 void rmi_2d_sensor_abs_process(struct rmi_2d_sensor *sensor, in rmi_2d_sensor_abs_process() argument
26 struct rmi_2d_axis_alignment *axis_align = &sensor->axis_align; in rmi_2d_sensor_abs_process()
33 obj->x = sensor->max_x - obj->x; in rmi_2d_sensor_abs_process()
36 obj->y = sensor->max_y - obj->y; in rmi_2d_sensor_abs_process()
56 obj->x = min(sensor->max_x, obj->x); in rmi_2d_sensor_abs_process()
59 obj->y = min(sensor->max_y, obj->y); in rmi_2d_sensor_abs_process()
61 sensor->tracking_pos[slot].x = obj->x; in rmi_2d_sensor_abs_process()
62 sensor->tracking_pos[slot].y = obj->y; in rmi_2d_sensor_abs_process()
66 void rmi_2d_sensor_abs_report(struct rmi_2d_sensor *sensor, in rmi_2d_sensor_abs_report() argument
70 struct rmi_2d_axis_alignment *axis_align = &sensor->axis_align; in rmi_2d_sensor_abs_report()
[all …]
H A Drmi_f12.c30 struct rmi_2d_sensor sensor; member
67 struct rmi_2d_sensor *sensor = &f12->sensor; in rmi_f12_read_sensor_tuning() local
68 struct rmi_function *fn = sensor->fn; in rmi_f12_read_sensor_tuning()
83 "F12 does not have the sensor tuning control register\n"); in rmi_f12_read_sensor_tuning()
103 sensor->max_x = (buf[offset + 1] << 8) | buf[offset]; in rmi_f12_read_sensor_tuning()
104 sensor->max_y = (buf[offset + 3] << 8) | buf[offset + 2]; in rmi_f12_read_sensor_tuning()
109 sensor->max_x, sensor->max_y); in rmi_f12_read_sensor_tuning()
118 /* Units 1/128 sensor pitch */ in rmi_f12_read_sensor_tuning()
144 sensor->x_mm = sensor->max_x / dpm_resolution; in rmi_f12_read_sensor_tuning()
145 sensor->y_mm = sensor->max_y / dpm_resolution; in rmi_f12_read_sensor_tuning()
[all …]
H A Drmi_f11.c36 * The properties for a given sensor are described by its query registers. The
38 * the F11 device queries as well as the sensor query information.
40 * Similarly, each sensor has control registers that govern its behavior. The
41 * size and layout of the control registers for a given sensor can be determined
44 * And in a likewise fashion, each sensor has data registers where it reports
49 * registers in order to determine the attributes of a sensor. Then
51 * registers for sensor.
66 * Writing this to the F11 command register will cause the sensor to
181 * struct f11_2d_sensor_queries - describes sensor capabilities
185 * @nr_fingers: describes the maximum number of fingers the 2-D sensor
[all …]
/linux/drivers/hid/amd-sfh-hid/hid_descriptor/
H A Damd_sfh_hid_report_desc.h13 // Accelerometer 3D Sensor
21 0x05, 0x20, /* HID usage page sensor */
22 0x0A, 0x09, 0x03, /* Sensor property and sensor connection type */
28 0x0A, 0x30, 0x08, /* Sensor property connection type intergated sel*/
29 0x0A, 0x31, 0x08, /* Sensor property connection type attached sel */
30 0x0A, 0x32, 0x08, /* Sensor property connection type external sel */
33 0x0A, 0x16, 0x03, /* HID usage sensor property reporting state */
39 0x0A, 0x40, 0x08, /* Sensor property report state no events sel */
40 0x0A, 0x41, 0x08, /* Sensor property report state all events sel */
41 0x0A, 0x42, 0x08, /* Sensor property report state threshold events sel */
[all …]
/linux/drivers/hwmon/
H A Dscpi-hwmon.c3 * System Control and Power Interface(SCPI) based hwmon sensor driver
57 static void scpi_scale_reading(u64 *value, struct sensor_data *sensor) in scpi_scale_reading() argument
59 if (scpi_scale[sensor->info.class] != sensor->scale) { in scpi_scale_reading()
60 *value *= scpi_scale[sensor->info.class]; in scpi_scale_reading()
61 do_div(*value, sensor->scale); in scpi_scale_reading()
70 struct sensor_data *sensor = &scpi_sensors->data[zone->sensor_id]; in scpi_read_temp() local
74 ret = scpi_ops->sensor_get_value(sensor->info.sensor_id, &value); in scpi_read_temp()
78 scpi_scale_reading(&value, sensor); in scpi_read_temp()
90 struct sensor_data *sensor; in scpi_show_sensor() local
94 sensor = container_of(attr, struct sensor_data, dev_attr_input); in scpi_show_sensor()
[all …]
/linux/drivers/iio/pressure/
H A DKconfig10 tristate "Honeywell ABP pressure sensor driver"
20 tristate "ROHM BM1390GLV-Z pressure sensor driver"
26 Support for the ROHM BM1390 pressure sensor. The BM1390GLV-Z
29 sensor does also provide temperature measurements.
32 tristate "Bosch Sensortec BMP180/BMP280/BMP380/BMP580 pressure sensor driver"
42 an additional humidity sensor channel.
61 tristate "ChromeOS EC Barometer Sensor"
64 Say yes here to build support for the Barometer sensor when
65 presented by the ChromeOS EC Sensor hub.
83 tristate "Infineon DPS310 pressure and temperature sensor"
[all …]
/linux/drivers/iio/chemical/
H A DKconfig9 tristate "Aosong AGS02MA TVOC sensor driver"
14 Organic Compounds) sensor.
29 * pH SM sensor
30 * EC SM sensor
31 * ORP SM sensor
34 module will be called atlas-ph-sensor.
42 * CO2 EZO Sensor
45 module will be called atlas-ezo-sensor.
48 tristate "Bosch Sensortec BME680 sensor driver"
56 Say yes here to build support for Bosch Sensortec BME680 sensor with
[all …]
/linux/drivers/media/i2c/et8ek8/
H A Det8ek8_driver.c70 * This table describes what should be written to the sensor register
551 * If power is on, also updates the sensor analog and digital gains.
554 static int et8ek8_set_gain(struct et8ek8_sensor *sensor, s32 gain) in et8ek8_set_gain() argument
556 struct i2c_client *client = v4l2_get_subdevdata(&sensor->subdev); in et8ek8_set_gain()
582 static int et8ek8_set_test_pattern(struct et8ek8_sensor *sensor, s32 mode) in et8ek8_set_test_pattern() argument
584 struct i2c_client *client = v4l2_get_subdevdata(&sensor->subdev); in et8ek8_set_test_pattern()
638 struct et8ek8_sensor *sensor = in et8ek8_set_ctrl() local
643 return et8ek8_set_gain(sensor, ctrl->val); in et8ek8_set_ctrl()
648 v4l2_get_subdevdata(&sensor->subdev); in et8ek8_set_ctrl()
655 return et8ek8_set_test_pattern(sensor, ctrl->val); in et8ek8_set_ctrl()
[all …]
/linux/Documentation/devicetree/bindings/
H A Dtrivial-devices.yaml34 - abb,spi-sensor
37 … # SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert and Over Temperature Pin
44 # Temperature sensor with integrated fan control
46 # Analog Devices ADT7411 Temperature Sensor and 8-channel ADC
48 # Temperature sensor with integrated fan control
50 # Temperature sensor with integrated fan control
54 # AMS iAQ-Core VOC Sensor
66 # CM32181: Ambient Light Sensor
68 # CM3232: Ambient Light Sensor
70 # CM3323: Ambient Light Sensor
[all …]
/linux/drivers/iio/proximity/
H A DKconfig9 tristate "AS3935 Franklin lightning sensor"
15 Microsystems AS3935 lightning detection sensor.
25 tristate "ChromeOS EC MKBP Proximity sensor"
28 Say Y here to enable the proximity sensor implemented via the ChromeOS EC MKBP
36 tristate "Nicera (Nippon Ceramic Co.) D3-323-AA PIR sensor"
39 Say Y here to build a driver for the Nicera D3-323-AA PIR sensor.
45 tristate "TYHX HX9023S SAR sensor"
51 Say Y here to build a driver for TYHX HX9023S capacitive SAR sensor.
59 tristate "Murata IRS-D200 PIR sensor"
65 Say Y here to build a driver for the Murata IRS-D200 PIR sensor.
[all …]
/linux/Documentation/hwmon/
H A Docc.rst16 sensor data from the processor and the system. The OCC can provide the raw
17 sensor data as well as perform thermal and power management on the system.
32 The OCC sensor ID is an integer that represents the unique identifier of the
33 sensor with respect to the OCC. For example, a temperature sensor for the third
34 DIMM slot in the system may have a sensor ID of 7. This mapping is unavailable
35 to the device driver, which must therefore export the sensor ID as-is.
37 Some entries are only present with certain OCC sensor versions or only on
42 OCC sensor ID.
44 [with temperature sensor version 1]
50 [with temperature sensor version >= 2]
[all …]
/linux/drivers/iio/temperature/
H A Dltc2983.c3 * Analog Devices LTC2983 Multi-Sensor Digital Temperature Measurement System
192 container_of(_sensor, struct ltc2983_thermocouple, sensor)
195 container_of(_sensor, struct ltc2983_rtd, sensor)
198 container_of(_sensor, struct ltc2983_thermistor, sensor)
201 container_of(_sensor, struct ltc2983_diode, sensor)
204 container_of(_sensor, struct ltc2983_rsense, sensor)
207 container_of(_sensor, struct ltc2983_adc, sensor)
210 container_of(_sensor, struct ltc2983_temp, sensor)
245 const struct ltc2983_sensor *sensor);
246 /* specifies the sensor channel */
[all …]

12345678910>>...69