static int hmc5843_remove(struct i2c_client *client) { struct hmc5843_data *data = i2c_get_clientdata(client); /* sleep mode to save power */ hmc5843_configure(client, MODE_SLEEP); iio_device_unregister(data->indio_dev); kfree(i2c_get_clientdata(client)); return 0; }
/* Called when we have found a new HMC5843. */ static void hmc5843_init_client(struct i2c_client *client) { struct hmc5843_data *data = i2c_get_clientdata(client); hmc5843_set_meas_conf(client, data->meas_conf); hmc5843_set_rate(client, data->rate); hmc5843_configure(client, data->operating_mode); i2c_smbus_write_byte_data(client, HMC5843_CONFIG_REG_B, data->range); mutex_init(&data->lock); pr_info("HMC5843 initialized\n"); }
static int hmc5843_resume(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); struct iio_dev *indio_dev = i2c_get_clientdata(client); struct hmc5843_data *data = iio_priv(indio_dev); hmc5843_configure(client, data->operating_mode); return 0; }
static int hmc5843_remove(struct i2c_client *client) { struct iio_dev *indio_dev = i2c_get_clientdata(client); iio_device_unregister(indio_dev); hmc5843_configure(client, MODE_SLEEP); iio_free_device(indio_dev); return 0; }
static int hmc5843_remove(struct i2c_client *client) { struct iio_dev *indio_dev = i2c_get_clientdata(client); iio_device_unregister(indio_dev); /* sleep mode to save power */ hmc5843_configure(client, HMC5843_MODE_SLEEP); iio_device_free(indio_dev); return 0; }
/* Called when we have found a new HMC58X3 */ static void hmc5843_init_client(struct i2c_client *client, const struct i2c_device_id *id) { struct iio_dev *indio_dev = i2c_get_clientdata(client); struct hmc5843_data *data = iio_priv(indio_dev); data->variant = &hmc5843_chip_info_tbl[id->driver_data]; indio_dev->channels = data->variant->channels; indio_dev->num_channels = 3; hmc5843_set_meas_conf(client, data->meas_conf); hmc5843_set_rate(client, data->rate); hmc5843_configure(client, data->operating_mode); i2c_smbus_write_byte_data(client, HMC5843_CONFIG_REG_B, data->range); mutex_init(&data->lock); pr_info("%s initialized\n", id->name); }
static int hmc5843_resume(struct i2c_client *client) { struct hmc5843_data *data = i2c_get_clientdata(client); hmc5843_configure(client, data->operating_mode); return 0; }
static int hmc5843_suspend(struct i2c_client *client, pm_message_t mesg) { hmc5843_configure(client, MODE_SLEEP); return 0; }
static int hmc5843_resume(struct device *dev) { struct hmc5843_data *data = i2c_get_clientdata(to_i2c_client(dev)); hmc5843_configure(to_i2c_client(dev), data->operating_mode); return 0; }
static int hmc5843_suspend(struct device *dev) { hmc5843_configure(to_i2c_client(dev), MODE_SLEEP); return 0; }