~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/iio/gyro/itg3200.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/iio/gyro/itg3200.h (Version linux-6.12-rc7) and /include/linux/iio/gyro/itg3200.h (Version linux-6.11.7)


  1 /* SPDX-License-Identifier: GPL-2.0-only */         1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*                                                  2 /*
  3  * itg3200.h -- support InvenSense ITG3200          3  * itg3200.h -- support InvenSense ITG3200
  4  *              Digital 3-Axis Gyroscope drive      4  *              Digital 3-Axis Gyroscope driver
  5  *                                                  5  *
  6  * Copyright (c) 2011 Christian Strobel <chris      6  * Copyright (c) 2011 Christian Strobel <christian.strobel@iis.fraunhofer.de>
  7  * Copyright (c) 2011 Manuel Stahl <manuel.sta      7  * Copyright (c) 2011 Manuel Stahl <manuel.stahl@iis.fraunhofer.de>
  8  * Copyright (c) 2012 Thorsten Nowak <thorsten      8  * Copyright (c) 2012 Thorsten Nowak <thorsten.nowak@iis.fraunhofer.de>
  9  */                                                 9  */
 10                                                    10 
 11 #ifndef I2C_ITG3200_H_                             11 #ifndef I2C_ITG3200_H_
 12 #define I2C_ITG3200_H_                             12 #define I2C_ITG3200_H_
 13                                                    13 
 14 #include <linux/iio/iio.h>                         14 #include <linux/iio/iio.h>
 15                                                    15 
 16 /* Register with I2C address (34h) */              16 /* Register with I2C address (34h) */
 17 #define ITG3200_REG_ADDRESS             0x00       17 #define ITG3200_REG_ADDRESS             0x00
 18                                                    18 
 19 /* Sample rate divider                             19 /* Sample rate divider
 20  * Range: 0 to 255                                 20  * Range: 0 to 255
 21  * Default value: 0x00 */                          21  * Default value: 0x00 */
 22 #define ITG3200_REG_SAMPLE_RATE_DIV     0x15       22 #define ITG3200_REG_SAMPLE_RATE_DIV     0x15
 23                                                    23 
 24 /* Digital low pass filter settings */             24 /* Digital low pass filter settings */
 25 #define ITG3200_REG_DLPF                0x16       25 #define ITG3200_REG_DLPF                0x16
 26 /* DLPF full scale range */                        26 /* DLPF full scale range */
 27 #define ITG3200_DLPF_FS_SEL_2000        0x18       27 #define ITG3200_DLPF_FS_SEL_2000        0x18
 28 /* Bandwidth (Hz) and internal sample rate         28 /* Bandwidth (Hz) and internal sample rate
 29  * (kHz) of DLPF */                                29  * (kHz) of DLPF */
 30 #define ITG3200_DLPF_256_8              0x00       30 #define ITG3200_DLPF_256_8              0x00
 31 #define ITG3200_DLPF_188_1              0x01       31 #define ITG3200_DLPF_188_1              0x01
 32 #define ITG3200_DLPF_98_1               0x02       32 #define ITG3200_DLPF_98_1               0x02
 33 #define ITG3200_DLPF_42_1               0x03       33 #define ITG3200_DLPF_42_1               0x03
 34 #define ITG3200_DLPF_20_1               0x04       34 #define ITG3200_DLPF_20_1               0x04
 35 #define ITG3200_DLPF_10_1               0x05       35 #define ITG3200_DLPF_10_1               0x05
 36 #define ITG3200_DLPF_5_1                0x06       36 #define ITG3200_DLPF_5_1                0x06
 37                                                    37 
 38 #define ITG3200_DLPF_CFG_MASK           0x07       38 #define ITG3200_DLPF_CFG_MASK           0x07
 39                                                    39 
 40 /* Configuration for interrupt operations */       40 /* Configuration for interrupt operations */
 41 #define ITG3200_REG_IRQ_CONFIG          0x17       41 #define ITG3200_REG_IRQ_CONFIG          0x17
 42 /* Logic level */                                  42 /* Logic level */
 43 #define ITG3200_IRQ_ACTIVE_LOW          0x80       43 #define ITG3200_IRQ_ACTIVE_LOW          0x80
 44 #define ITG3200_IRQ_ACTIVE_HIGH         0x00       44 #define ITG3200_IRQ_ACTIVE_HIGH         0x00
 45 /* Drive type */                                   45 /* Drive type */
 46 #define ITG3200_IRQ_OPEN_DRAIN          0x40       46 #define ITG3200_IRQ_OPEN_DRAIN          0x40
 47 #define ITG3200_IRQ_PUSH_PULL           0x00       47 #define ITG3200_IRQ_PUSH_PULL           0x00
 48 /* Latch mode */                                   48 /* Latch mode */
 49 #define ITG3200_IRQ_LATCH_UNTIL_CLEARED 0x20       49 #define ITG3200_IRQ_LATCH_UNTIL_CLEARED 0x20
 50 #define ITG3200_IRQ_LATCH_50US_PULSE    0x00       50 #define ITG3200_IRQ_LATCH_50US_PULSE    0x00
 51 /* Latch clear method */                           51 /* Latch clear method */
 52 #define ITG3200_IRQ_LATCH_CLEAR_ANY     0x10       52 #define ITG3200_IRQ_LATCH_CLEAR_ANY     0x10
 53 #define ITG3200_IRQ_LATCH_CLEAR_STATUS  0x00       53 #define ITG3200_IRQ_LATCH_CLEAR_STATUS  0x00
 54 /* Enable interrupt when device is ready */        54 /* Enable interrupt when device is ready */
 55 #define ITG3200_IRQ_DEVICE_RDY_ENABLE   0x04       55 #define ITG3200_IRQ_DEVICE_RDY_ENABLE   0x04
 56 /* Enable interrupt when data is available */      56 /* Enable interrupt when data is available */
 57 #define ITG3200_IRQ_DATA_RDY_ENABLE     0x01       57 #define ITG3200_IRQ_DATA_RDY_ENABLE     0x01
 58                                                    58 
 59 /* Determine the status of ITG-3200 interrupts     59 /* Determine the status of ITG-3200 interrupts */
 60 #define ITG3200_REG_IRQ_STATUS          0x1A       60 #define ITG3200_REG_IRQ_STATUS          0x1A
 61 /* Status of 'device is ready'-interrupt */        61 /* Status of 'device is ready'-interrupt */
 62 #define ITG3200_IRQ_DEVICE_RDY_STATUS   0x04       62 #define ITG3200_IRQ_DEVICE_RDY_STATUS   0x04
 63 /* Status of 'data is available'-interrupt */      63 /* Status of 'data is available'-interrupt */
 64 #define ITG3200_IRQ_DATA_RDY_STATUS     0x01       64 #define ITG3200_IRQ_DATA_RDY_STATUS     0x01
 65                                                    65 
 66 /* Sensor registers */                             66 /* Sensor registers */
 67 #define ITG3200_REG_TEMP_OUT_H          0x1B       67 #define ITG3200_REG_TEMP_OUT_H          0x1B
 68 #define ITG3200_REG_TEMP_OUT_L          0x1C       68 #define ITG3200_REG_TEMP_OUT_L          0x1C
 69 #define ITG3200_REG_GYRO_XOUT_H         0x1D       69 #define ITG3200_REG_GYRO_XOUT_H         0x1D
 70 #define ITG3200_REG_GYRO_XOUT_L         0x1E       70 #define ITG3200_REG_GYRO_XOUT_L         0x1E
 71 #define ITG3200_REG_GYRO_YOUT_H         0x1F       71 #define ITG3200_REG_GYRO_YOUT_H         0x1F
 72 #define ITG3200_REG_GYRO_YOUT_L         0x20       72 #define ITG3200_REG_GYRO_YOUT_L         0x20
 73 #define ITG3200_REG_GYRO_ZOUT_H         0x21       73 #define ITG3200_REG_GYRO_ZOUT_H         0x21
 74 #define ITG3200_REG_GYRO_ZOUT_L         0x22       74 #define ITG3200_REG_GYRO_ZOUT_L         0x22
 75                                                    75 
 76 /* Power management */                             76 /* Power management */
 77 #define ITG3200_REG_POWER_MANAGEMENT    0x3E       77 #define ITG3200_REG_POWER_MANAGEMENT    0x3E
 78 /* Reset device and internal registers to the      78 /* Reset device and internal registers to the
 79  * power-up-default settings */                    79  * power-up-default settings */
 80 #define ITG3200_RESET                   0x80       80 #define ITG3200_RESET                   0x80
 81 /* Enable low power sleep mode */                  81 /* Enable low power sleep mode */
 82 #define ITG3200_SLEEP                   0x40       82 #define ITG3200_SLEEP                   0x40
 83 /* Put according gyroscope in standby mode */      83 /* Put according gyroscope in standby mode */
 84 #define ITG3200_STANDBY_GYRO_X          0x20       84 #define ITG3200_STANDBY_GYRO_X          0x20
 85 #define ITG3200_STANDBY_GYRO_Y          0x10       85 #define ITG3200_STANDBY_GYRO_Y          0x10
 86 #define ITG3200_STANDBY_GYRO_Z          0x08       86 #define ITG3200_STANDBY_GYRO_Z          0x08
 87 /* Determine the device clock source */            87 /* Determine the device clock source */
 88 #define ITG3200_CLK_INTERNAL            0x00       88 #define ITG3200_CLK_INTERNAL            0x00
 89 #define ITG3200_CLK_GYRO_X              0x01       89 #define ITG3200_CLK_GYRO_X              0x01
 90 #define ITG3200_CLK_GYRO_Y              0x02       90 #define ITG3200_CLK_GYRO_Y              0x02
 91 #define ITG3200_CLK_GYRO_Z              0x03       91 #define ITG3200_CLK_GYRO_Z              0x03
 92 #define ITG3200_CLK_EXT_32K             0x04       92 #define ITG3200_CLK_EXT_32K             0x04
 93 #define ITG3200_CLK_EXT_19M             0x05       93 #define ITG3200_CLK_EXT_19M             0x05
 94                                                    94 
 95                                                    95 
 96 /**                                                96 /**
 97  * struct itg3200 - device instance specific d     97  * struct itg3200 - device instance specific data
 98  * @i2c:    actual i2c_client                      98  * @i2c:    actual i2c_client
 99  * @trig:   data ready trigger from itg3200 pi     99  * @trig:   data ready trigger from itg3200 pin
100  **/                                              100  **/
101 struct itg3200 {                                  101 struct itg3200 {
102         struct i2c_client       *i2c;             102         struct i2c_client       *i2c;
103         struct iio_trigger      *trig;            103         struct iio_trigger      *trig;
104         struct iio_mount_matrix orientation;      104         struct iio_mount_matrix orientation;
105         /* lock to protect against multiple ac    105         /* lock to protect against multiple access to the device */
106         struct mutex            lock;             106         struct mutex            lock;
107 };                                                107 };
108                                                   108 
109 enum ITG3200_SCAN_INDEX {                         109 enum ITG3200_SCAN_INDEX {
110         ITG3200_SCAN_TEMP,                        110         ITG3200_SCAN_TEMP,
111         ITG3200_SCAN_GYRO_X,                      111         ITG3200_SCAN_GYRO_X,
112         ITG3200_SCAN_GYRO_Y,                      112         ITG3200_SCAN_GYRO_Y,
113         ITG3200_SCAN_GYRO_Z,                      113         ITG3200_SCAN_GYRO_Z,
114         ITG3200_SCAN_ELEMENTS,                    114         ITG3200_SCAN_ELEMENTS,
115 };                                                115 };
116                                                   116 
117 int itg3200_write_reg_8(struct iio_dev *indio_    117 int itg3200_write_reg_8(struct iio_dev *indio_dev,
118                 u8 reg_address, u8 val);          118                 u8 reg_address, u8 val);
119                                                   119 
120 int itg3200_read_reg_8(struct iio_dev *indio_d    120 int itg3200_read_reg_8(struct iio_dev *indio_dev,
121                 u8 reg_address, u8 *val);         121                 u8 reg_address, u8 *val);
122                                                   122 
123                                                   123 
124 #ifdef CONFIG_IIO_BUFFER                          124 #ifdef CONFIG_IIO_BUFFER
125                                                   125 
126 void itg3200_remove_trigger(struct iio_dev *in    126 void itg3200_remove_trigger(struct iio_dev *indio_dev);
127 int itg3200_probe_trigger(struct iio_dev *indi    127 int itg3200_probe_trigger(struct iio_dev *indio_dev);
128                                                   128 
129 int itg3200_buffer_configure(struct iio_dev *i    129 int itg3200_buffer_configure(struct iio_dev *indio_dev);
130 void itg3200_buffer_unconfigure(struct iio_dev    130 void itg3200_buffer_unconfigure(struct iio_dev *indio_dev);
131                                                   131 
132 #else /* CONFIG_IIO_BUFFER */                     132 #else /* CONFIG_IIO_BUFFER */
133                                                   133 
134 static inline void itg3200_remove_trigger(stru    134 static inline void itg3200_remove_trigger(struct iio_dev *indio_dev)
135 {                                                 135 {
136 }                                                 136 }
137                                                   137 
138 static inline int itg3200_probe_trigger(struct    138 static inline int itg3200_probe_trigger(struct iio_dev *indio_dev)
139 {                                                 139 {
140         return 0;                                 140         return 0;
141 }                                                 141 }
142                                                   142 
143 static inline int itg3200_buffer_configure(str    143 static inline int itg3200_buffer_configure(struct iio_dev *indio_dev)
144 {                                                 144 {
145         return 0;                                 145         return 0;
146 }                                                 146 }
147                                                   147 
148 static inline void itg3200_buffer_unconfigure(    148 static inline void itg3200_buffer_unconfigure(struct iio_dev *indio_dev)
149 {                                                 149 {
150 }                                                 150 }
151                                                   151 
152 #endif  /* CONFIG_IIO_BUFFER */                   152 #endif  /* CONFIG_IIO_BUFFER */
153                                                   153 
154 #endif /* ITG3200_H_ */                           154 #endif /* ITG3200_H_ */
155                                                   155 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php