mpu3050           178 drivers/iio/gyro/mpu3050-core.c static unsigned int mpu3050_get_freq(struct mpu3050 *mpu3050)
mpu3050           182 drivers/iio/gyro/mpu3050-core.c 	if (mpu3050->lpf == MPU3050_DLPF_CFG_256HZ_NOLPF2)
mpu3050           186 drivers/iio/gyro/mpu3050-core.c 	freq /= (mpu3050->divisor + 1);
mpu3050           191 drivers/iio/gyro/mpu3050-core.c static int mpu3050_start_sampling(struct mpu3050 *mpu3050)
mpu3050           198 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_update_bits(mpu3050->map, MPU3050_PWR_MGM,
mpu3050           204 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_update_bits(mpu3050->map, MPU3050_PWR_MGM,
mpu3050           212 drivers/iio/gyro/mpu3050-core.c 		raw_val[i] = cpu_to_be16(mpu3050->calibration[i]);
mpu3050           214 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_bulk_write(mpu3050->map, MPU3050_X_OFFS_USR_H, raw_val,
mpu3050           220 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_write(mpu3050->map, MPU3050_DLPF_FS_SYNC,
mpu3050           222 drivers/iio/gyro/mpu3050-core.c 			   mpu3050->fullscale << MPU3050_FS_SHIFT |
mpu3050           223 drivers/iio/gyro/mpu3050-core.c 			   mpu3050->lpf << MPU3050_DLPF_CFG_SHIFT);
mpu3050           228 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_write(mpu3050->map, MPU3050_SMPLRT_DIV, mpu3050->divisor);
mpu3050           237 drivers/iio/gyro/mpu3050-core.c 	msleep(50 + 1000 / mpu3050_get_freq(mpu3050));
mpu3050           242 drivers/iio/gyro/mpu3050-core.c static int mpu3050_set_8khz_samplerate(struct mpu3050 *mpu3050)
mpu3050           248 drivers/iio/gyro/mpu3050-core.c 	lpf = mpu3050->lpf;
mpu3050           249 drivers/iio/gyro/mpu3050-core.c 	divisor = mpu3050->divisor;
mpu3050           251 drivers/iio/gyro/mpu3050-core.c 	mpu3050->lpf = LPF_256_HZ_NOLPF; /* 8 kHz base frequency */
mpu3050           252 drivers/iio/gyro/mpu3050-core.c 	mpu3050->divisor = 0; /* Divide by 1 */
mpu3050           253 drivers/iio/gyro/mpu3050-core.c 	ret = mpu3050_start_sampling(mpu3050);
mpu3050           255 drivers/iio/gyro/mpu3050-core.c 	mpu3050->lpf = lpf;
mpu3050           256 drivers/iio/gyro/mpu3050-core.c 	mpu3050->divisor = divisor;
mpu3050           266 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           283 drivers/iio/gyro/mpu3050-core.c 			*val = mpu3050->calibration[chan->scan_index-1];
mpu3050           289 drivers/iio/gyro/mpu3050-core.c 		*val = mpu3050_get_freq(mpu3050);
mpu3050           306 drivers/iio/gyro/mpu3050-core.c 			*val = mpu3050_fs_precision[mpu3050->fullscale] * 2;
mpu3050           314 drivers/iio/gyro/mpu3050-core.c 		pm_runtime_get_sync(mpu3050->dev);
mpu3050           315 drivers/iio/gyro/mpu3050-core.c 		mutex_lock(&mpu3050->lock);
mpu3050           317 drivers/iio/gyro/mpu3050-core.c 		ret = mpu3050_set_8khz_samplerate(mpu3050);
mpu3050           323 drivers/iio/gyro/mpu3050-core.c 			ret = regmap_bulk_read(mpu3050->map, MPU3050_TEMP_H,
mpu3050           326 drivers/iio/gyro/mpu3050-core.c 				dev_err(mpu3050->dev,
mpu3050           336 drivers/iio/gyro/mpu3050-core.c 			ret = regmap_bulk_read(mpu3050->map,
mpu3050           341 drivers/iio/gyro/mpu3050-core.c 				dev_err(mpu3050->dev,
mpu3050           361 drivers/iio/gyro/mpu3050-core.c 	mutex_unlock(&mpu3050->lock);
mpu3050           362 drivers/iio/gyro/mpu3050-core.c 	pm_runtime_mark_last_busy(mpu3050->dev);
mpu3050           363 drivers/iio/gyro/mpu3050-core.c 	pm_runtime_put_autosuspend(mpu3050->dev);
mpu3050           372 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           393 drivers/iio/gyro/mpu3050-core.c 		mpu3050->calibration[chan->scan_index-1] = val;
mpu3050           408 drivers/iio/gyro/mpu3050-core.c 			mpu3050->lpf = LPF_256_HZ_NOLPF;
mpu3050           409 drivers/iio/gyro/mpu3050-core.c 			mpu3050->divisor = DIV_ROUND_CLOSEST(8000, val) - 1;
mpu3050           413 drivers/iio/gyro/mpu3050-core.c 		mpu3050->lpf = LPF_188_HZ;
mpu3050           414 drivers/iio/gyro/mpu3050-core.c 		mpu3050->divisor = DIV_ROUND_CLOSEST(1000, val) - 1;
mpu3050           429 drivers/iio/gyro/mpu3050-core.c 			mpu3050->fullscale = FS_2000_DPS;
mpu3050           440 drivers/iio/gyro/mpu3050-core.c 			mpu3050->fullscale = FS_250_DPS;
mpu3050           443 drivers/iio/gyro/mpu3050-core.c 			mpu3050->fullscale = FS_500_DPS;
mpu3050           446 drivers/iio/gyro/mpu3050-core.c 			mpu3050->fullscale = FS_1000_DPS;
mpu3050           449 drivers/iio/gyro/mpu3050-core.c 			mpu3050->fullscale = FS_2000_DPS;
mpu3050           462 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           481 drivers/iio/gyro/mpu3050-core.c 		timestamp = mpu3050->hw_timestamp;
mpu3050           485 drivers/iio/gyro/mpu3050-core.c 	mutex_lock(&mpu3050->lock);
mpu3050           488 drivers/iio/gyro/mpu3050-core.c 	if (mpu3050->hw_irq_trigger) {
mpu3050           495 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_bulk_read(mpu3050->map,
mpu3050           504 drivers/iio/gyro/mpu3050-core.c 			dev_info(mpu3050->dev,
mpu3050           508 drivers/iio/gyro/mpu3050-core.c 			ret = regmap_update_bits(mpu3050->map,
mpu3050           515 drivers/iio/gyro/mpu3050-core.c 				dev_info(mpu3050->dev, "error resetting FIFO\n");
mpu3050           518 drivers/iio/gyro/mpu3050-core.c 			mpu3050->pending_fifo_footer = false;
mpu3050           522 drivers/iio/gyro/mpu3050-core.c 			dev_dbg(mpu3050->dev,
mpu3050           539 drivers/iio/gyro/mpu3050-core.c 			if (mpu3050->pending_fifo_footer) {
mpu3050           549 drivers/iio/gyro/mpu3050-core.c 			ret = regmap_bulk_read(mpu3050->map,
mpu3050           554 drivers/iio/gyro/mpu3050-core.c 			dev_dbg(mpu3050->dev,
mpu3050           569 drivers/iio/gyro/mpu3050-core.c 			mpu3050->pending_fifo_footer = true;
mpu3050           576 drivers/iio/gyro/mpu3050-core.c 				ret = regmap_bulk_read(mpu3050->map,
mpu3050           586 drivers/iio/gyro/mpu3050-core.c 				dev_dbg(mpu3050->dev,
mpu3050           617 drivers/iio/gyro/mpu3050-core.c 		dev_dbg(mpu3050->dev,
mpu3050           623 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_bulk_read(mpu3050->map, MPU3050_TEMP_H, &hw_values,
mpu3050           626 drivers/iio/gyro/mpu3050-core.c 		dev_err(mpu3050->dev,
mpu3050           634 drivers/iio/gyro/mpu3050-core.c 	mutex_unlock(&mpu3050->lock);
mpu3050           642 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           644 drivers/iio/gyro/mpu3050-core.c 	pm_runtime_get_sync(mpu3050->dev);
mpu3050           647 drivers/iio/gyro/mpu3050-core.c 	if (!mpu3050->hw_irq_trigger)
mpu3050           648 drivers/iio/gyro/mpu3050-core.c 		return mpu3050_set_8khz_samplerate(mpu3050);
mpu3050           655 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           657 drivers/iio/gyro/mpu3050-core.c 	pm_runtime_mark_last_busy(mpu3050->dev);
mpu3050           658 drivers/iio/gyro/mpu3050-core.c 	pm_runtime_put_autosuspend(mpu3050->dev);
mpu3050           674 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           676 drivers/iio/gyro/mpu3050-core.c 	return &mpu3050->orientation;
mpu3050           760 drivers/iio/gyro/mpu3050-core.c static int mpu3050_read_mem(struct mpu3050 *mpu3050,
mpu3050           768 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_write(mpu3050->map,
mpu3050           774 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_write(mpu3050->map,
mpu3050           780 drivers/iio/gyro/mpu3050-core.c 	return regmap_bulk_read(mpu3050->map,
mpu3050           786 drivers/iio/gyro/mpu3050-core.c static int mpu3050_hw_init(struct mpu3050 *mpu3050)
mpu3050           792 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_update_bits(mpu3050->map,
mpu3050           800 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_update_bits(mpu3050->map,
mpu3050           808 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_write(mpu3050->map,
mpu3050           815 drivers/iio/gyro/mpu3050-core.c 	ret = mpu3050_read_mem(mpu3050,
mpu3050           828 drivers/iio/gyro/mpu3050-core.c 	dev_info(mpu3050->dev,
mpu3050           847 drivers/iio/gyro/mpu3050-core.c static int mpu3050_power_up(struct mpu3050 *mpu3050)
mpu3050           851 drivers/iio/gyro/mpu3050-core.c 	ret = regulator_bulk_enable(ARRAY_SIZE(mpu3050->regs), mpu3050->regs);
mpu3050           853 drivers/iio/gyro/mpu3050-core.c 		dev_err(mpu3050->dev, "cannot enable regulators\n");
mpu3050           863 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_update_bits(mpu3050->map, MPU3050_PWR_MGM,
mpu3050           866 drivers/iio/gyro/mpu3050-core.c 		dev_err(mpu3050->dev, "error setting power mode\n");
mpu3050           874 drivers/iio/gyro/mpu3050-core.c static int mpu3050_power_down(struct mpu3050 *mpu3050)
mpu3050           885 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_update_bits(mpu3050->map, MPU3050_PWR_MGM,
mpu3050           888 drivers/iio/gyro/mpu3050-core.c 		dev_err(mpu3050->dev, "error putting to sleep\n");
mpu3050           890 drivers/iio/gyro/mpu3050-core.c 	ret = regulator_bulk_disable(ARRAY_SIZE(mpu3050->regs), mpu3050->regs);
mpu3050           892 drivers/iio/gyro/mpu3050-core.c 		dev_err(mpu3050->dev, "error disabling regulators\n");
mpu3050           901 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           903 drivers/iio/gyro/mpu3050-core.c 	if (!mpu3050->hw_irq_trigger)
mpu3050           907 drivers/iio/gyro/mpu3050-core.c 	mpu3050->hw_timestamp = iio_get_time_ns(indio_dev);
mpu3050           916 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           921 drivers/iio/gyro/mpu3050-core.c 	ret = regmap_read(mpu3050->map, MPU3050_INT_STATUS, &val);
mpu3050           923 drivers/iio/gyro/mpu3050-core.c 		dev_err(mpu3050->dev, "error reading IRQ status\n");
mpu3050           943 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050           950 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_write(mpu3050->map,
mpu3050           954 drivers/iio/gyro/mpu3050-core.c 			dev_err(mpu3050->dev, "error disabling IRQ\n");
mpu3050           957 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_read(mpu3050->map, MPU3050_INT_STATUS, &val);
mpu3050           959 drivers/iio/gyro/mpu3050-core.c 			dev_err(mpu3050->dev, "error clearing IRQ status\n");
mpu3050           962 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_write(mpu3050->map, MPU3050_FIFO_EN, 0);
mpu3050           964 drivers/iio/gyro/mpu3050-core.c 			dev_err(mpu3050->dev, "error disabling FIFO\n");
mpu3050           966 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_write(mpu3050->map, MPU3050_USR_CTRL,
mpu3050           969 drivers/iio/gyro/mpu3050-core.c 			dev_err(mpu3050->dev, "error resetting FIFO\n");
mpu3050           971 drivers/iio/gyro/mpu3050-core.c 		pm_runtime_mark_last_busy(mpu3050->dev);
mpu3050           972 drivers/iio/gyro/mpu3050-core.c 		pm_runtime_put_autosuspend(mpu3050->dev);
mpu3050           973 drivers/iio/gyro/mpu3050-core.c 		mpu3050->hw_irq_trigger = false;
mpu3050           978 drivers/iio/gyro/mpu3050-core.c 		pm_runtime_get_sync(mpu3050->dev);
mpu3050           979 drivers/iio/gyro/mpu3050-core.c 		mpu3050->hw_irq_trigger = true;
mpu3050           982 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_write(mpu3050->map, MPU3050_FIFO_EN, 0);
mpu3050           987 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_update_bits(mpu3050->map, MPU3050_USR_CTRL,
mpu3050           995 drivers/iio/gyro/mpu3050-core.c 		mpu3050->pending_fifo_footer = false;
mpu3050           998 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_write(mpu3050->map, MPU3050_FIFO_EN,
mpu3050          1008 drivers/iio/gyro/mpu3050-core.c 		ret = mpu3050_start_sampling(mpu3050);
mpu3050          1013 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_read(mpu3050->map, MPU3050_INT_STATUS, &val);
mpu3050          1015 drivers/iio/gyro/mpu3050-core.c 			dev_err(mpu3050->dev, "error clearing IRQ status\n");
mpu3050          1020 drivers/iio/gyro/mpu3050-core.c 		if (mpu3050->irq_actl)
mpu3050          1022 drivers/iio/gyro/mpu3050-core.c 		if (mpu3050->irq_latch)
mpu3050          1024 drivers/iio/gyro/mpu3050-core.c 		if (mpu3050->irq_opendrain)
mpu3050          1027 drivers/iio/gyro/mpu3050-core.c 		ret = regmap_write(mpu3050->map, MPU3050_INT_CFG, val);
mpu3050          1041 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050          1045 drivers/iio/gyro/mpu3050-core.c 	mpu3050->trig = devm_iio_trigger_alloc(&indio_dev->dev,
mpu3050          1049 drivers/iio/gyro/mpu3050-core.c 	if (!mpu3050->trig)
mpu3050          1053 drivers/iio/gyro/mpu3050-core.c 	if (of_property_read_bool(mpu3050->dev->of_node, "drive-open-drain"))
mpu3050          1054 drivers/iio/gyro/mpu3050-core.c 		mpu3050->irq_opendrain = true;
mpu3050          1068 drivers/iio/gyro/mpu3050-core.c 		mpu3050->irq_actl = true;
mpu3050          1073 drivers/iio/gyro/mpu3050-core.c 		mpu3050->irq_latch = true;
mpu3050          1084 drivers/iio/gyro/mpu3050-core.c 		mpu3050->irq_latch = true;
mpu3050          1085 drivers/iio/gyro/mpu3050-core.c 		mpu3050->irq_actl = true;
mpu3050          1100 drivers/iio/gyro/mpu3050-core.c 	if (mpu3050->irq_opendrain)
mpu3050          1107 drivers/iio/gyro/mpu3050-core.c 				   mpu3050->trig->name,
mpu3050          1108 drivers/iio/gyro/mpu3050-core.c 				   mpu3050->trig);
mpu3050          1110 drivers/iio/gyro/mpu3050-core.c 		dev_err(mpu3050->dev,
mpu3050          1115 drivers/iio/gyro/mpu3050-core.c 	mpu3050->irq = irq;
mpu3050          1116 drivers/iio/gyro/mpu3050-core.c 	mpu3050->trig->dev.parent = mpu3050->dev;
mpu3050          1117 drivers/iio/gyro/mpu3050-core.c 	mpu3050->trig->ops = &mpu3050_trigger_ops;
mpu3050          1118 drivers/iio/gyro/mpu3050-core.c 	iio_trigger_set_drvdata(mpu3050->trig, indio_dev);
mpu3050          1120 drivers/iio/gyro/mpu3050-core.c 	ret = iio_trigger_register(mpu3050->trig);
mpu3050          1124 drivers/iio/gyro/mpu3050-core.c 	indio_dev->trig = iio_trigger_get(mpu3050->trig);
mpu3050          1135 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050;
mpu3050          1139 drivers/iio/gyro/mpu3050-core.c 	indio_dev = devm_iio_device_alloc(dev, sizeof(*mpu3050));
mpu3050          1142 drivers/iio/gyro/mpu3050-core.c 	mpu3050 = iio_priv(indio_dev);
mpu3050          1144 drivers/iio/gyro/mpu3050-core.c 	mpu3050->dev = dev;
mpu3050          1145 drivers/iio/gyro/mpu3050-core.c 	mpu3050->map = map;
mpu3050          1146 drivers/iio/gyro/mpu3050-core.c 	mutex_init(&mpu3050->lock);
mpu3050          1148 drivers/iio/gyro/mpu3050-core.c 	mpu3050->fullscale = FS_2000_DPS;
mpu3050          1150 drivers/iio/gyro/mpu3050-core.c 	mpu3050->lpf = MPU3050_DLPF_CFG_188HZ;
mpu3050          1151 drivers/iio/gyro/mpu3050-core.c 	mpu3050->divisor = 99;
mpu3050          1154 drivers/iio/gyro/mpu3050-core.c 	ret = iio_read_mount_matrix(dev, "mount-matrix", &mpu3050->orientation);
mpu3050          1159 drivers/iio/gyro/mpu3050-core.c 	mpu3050->regs[0].supply = mpu3050_reg_vdd;
mpu3050          1160 drivers/iio/gyro/mpu3050-core.c 	mpu3050->regs[1].supply = mpu3050_reg_vlogic;
mpu3050          1161 drivers/iio/gyro/mpu3050-core.c 	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(mpu3050->regs),
mpu3050          1162 drivers/iio/gyro/mpu3050-core.c 				      mpu3050->regs);
mpu3050          1168 drivers/iio/gyro/mpu3050-core.c 	ret = mpu3050_power_up(mpu3050);
mpu3050          1197 drivers/iio/gyro/mpu3050-core.c 	ret = mpu3050_hw_init(mpu3050);
mpu3050          1250 drivers/iio/gyro/mpu3050-core.c 	mpu3050_power_down(mpu3050);
mpu3050          1259 drivers/iio/gyro/mpu3050-core.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050          1265 drivers/iio/gyro/mpu3050-core.c 	if (mpu3050->irq)
mpu3050          1266 drivers/iio/gyro/mpu3050-core.c 		free_irq(mpu3050->irq, mpu3050);
mpu3050          1268 drivers/iio/gyro/mpu3050-core.c 	mpu3050_power_down(mpu3050);
mpu3050            19 drivers/iio/gyro/mpu3050-i2c.c 	struct mpu3050 *mpu3050 = i2c_mux_priv(mux);
mpu3050            22 drivers/iio/gyro/mpu3050-i2c.c 	pm_runtime_get_sync(mpu3050->dev);
mpu3050            28 drivers/iio/gyro/mpu3050-i2c.c 	struct mpu3050 *mpu3050 = i2c_mux_priv(mux);
mpu3050            30 drivers/iio/gyro/mpu3050-i2c.c 	pm_runtime_mark_last_busy(mpu3050->dev);
mpu3050            31 drivers/iio/gyro/mpu3050-i2c.c 	pm_runtime_put_autosuspend(mpu3050->dev);
mpu3050            40 drivers/iio/gyro/mpu3050-i2c.c 	struct mpu3050 *mpu3050;
mpu3050            64 drivers/iio/gyro/mpu3050-i2c.c 	mpu3050 = iio_priv(dev_get_drvdata(&client->dev));
mpu3050            65 drivers/iio/gyro/mpu3050-i2c.c 	mpu3050->i2cmux = i2c_mux_alloc(client->adapter, &client->dev,
mpu3050            70 drivers/iio/gyro/mpu3050-i2c.c 	if (!mpu3050->i2cmux)
mpu3050            73 drivers/iio/gyro/mpu3050-i2c.c 		mpu3050->i2cmux->priv = mpu3050;
mpu3050            75 drivers/iio/gyro/mpu3050-i2c.c 		i2c_mux_add_adapter(mpu3050->i2cmux, 0, 0, 0);
mpu3050            84 drivers/iio/gyro/mpu3050-i2c.c 	struct mpu3050 *mpu3050 = iio_priv(indio_dev);
mpu3050            86 drivers/iio/gyro/mpu3050-i2c.c 	if (mpu3050->i2cmux)
mpu3050            87 drivers/iio/gyro/mpu3050-i2c.c 		i2c_mux_del_adapters(mpu3050->i2cmux);