Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  mpu3050.h  Sprache: unbekannt

 
/* SPDX-License-Identifier: GPL-2.0 */
#include <linux/iio/iio.h>
#include <linux/mutex.h>
#include <linux/regmap.h>
#include <linux/regulator/consumer.h>
#include <linux/i2c.h>

/**
 * enum mpu3050_fullscale - indicates the full range of the sensor in deg/sec
 */

enum mpu3050_fullscale {
 FS_250_DPS = 0,
 FS_500_DPS,
 FS_1000_DPS,
 FS_2000_DPS,
};

/**
 * enum mpu3050_lpf - indicates the low pass filter width
 */

enum mpu3050_lpf {
 /* This implicity sets sample frequency to 8 kHz */
 LPF_256_HZ_NOLPF = 0,
 /* All others sets the sample frequency to 1 kHz */
 LPF_188_HZ,
 LPF_98_HZ,
 LPF_42_HZ,
 LPF_20_HZ,
 LPF_10_HZ,
 LPF_5_HZ,
 LPF_2100_HZ_NOLPF,
};

enum mpu3050_axis {
 AXIS_X = 0,
 AXIS_Y,
 AXIS_Z,
 AXIS_MAX,
};

/**
 * struct mpu3050 - instance state container for the device
 * @dev: parent device for this instance
 * @orientation: mounting matrix, flipped axis etc
 * @map: regmap to reach the registers
 * @lock: serialization lock to marshal all requests
 * @irq: the IRQ used for this device
 * @regs: the regulators to power this device
 * @fullscale: the current fullscale setting for the device
 * @lpf: digital low pass filter setting for the device
 * @divisor: base frequency divider: divides 8 or 1 kHz
 * @calibration: the three signed 16-bit calibration settings that
 * get written into the offset registers for each axis to compensate
 * for DC offsets
 * @trig: trigger for the MPU-3050 interrupt, if present
 * @hw_irq_trigger: hardware interrupt trigger is in use
 * @irq_actl: interrupt is active low
 * @irq_latch: latched IRQ, this means that it is a level IRQ
 * @irq_opendrain: the interrupt line shall be configured open drain
 * @pending_fifo_footer: tells us if there is a pending footer in the FIFO
 * that we have to read out first when handling the FIFO
 * @hw_timestamp: latest hardware timestamp from the trigger IRQ, when in
 * use
 * @i2cmux: an I2C mux reflecting the fact that this sensor is a hub with
 * a pass-through I2C interface coming out of it: this device needs to be
 * powered up in order to reach devices on the other side of this mux
 */

struct mpu3050 {
 struct device *dev;
 struct iio_mount_matrix orientation;
 struct regmap *map;
 struct mutex lock;
 int irq;
 struct regulator_bulk_data regs[2];
 enum mpu3050_fullscale fullscale;
 enum mpu3050_lpf lpf;
 u8 divisor;
 s16 calibration[3];
 struct iio_trigger *trig;
 bool hw_irq_trigger;
 bool irq_actl;
 bool irq_latch;
 bool irq_opendrain;
 bool pending_fifo_footer;
 s64 hw_timestamp;
 struct i2c_mux_core *i2cmux;
};

/* Probe called from different transports */
int mpu3050_common_probe(struct device *dev,
    struct regmap *map,
    int irq,
    const char *name);
void mpu3050_common_remove(struct device *dev);

/* PM ops */
extern const struct dev_pm_ops mpu3050_dev_pm_ops;

Messung V0.5 in Prozent
C=98 H=99 G=98

[Dauer der Verarbeitung: 0.11 Sekunden, vorverarbeitet 2026-09-27]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126864
#Domains=1897691