From 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 13 May 2024 10:30:14 +0000 Subject: [PATCH] modify sin led gpio --- kernel/drivers/iio/light/si1145.c | 59 ++++++++++------------------------------------------------- 1 files changed, 10 insertions(+), 49 deletions(-) diff --git a/kernel/drivers/iio/light/si1145.c b/kernel/drivers/iio/light/si1145.c index 31f78fd..b304801 100644 --- a/kernel/drivers/iio/light/si1145.c +++ b/kernel/drivers/iio/light/si1145.c @@ -1,13 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0-only /* * si1145.c - Support for Silabs SI1132 and SI1141/2/3/5/6/7 combined ambient * light, UV index and proximity sensors * * Copyright 2014-16 Peter Meerwald-Stadler <pmeerw@pmeerw.net> * Copyright 2016 Crestez Dan Leonard <leonard.crestez@intel.com> - * - * This file is subject to the terms and conditions of version 2 of - * the GNU General Public License. See the file COPYING in the main - * directory of this archive for more details. * * SI1132 (7-bit I2C slave address 0x60) * SI1141/2/3 (7-bit I2C slave address 0x5a) @@ -20,7 +17,6 @@ #include <linux/slab.h> #include <linux/delay.h> #include <linux/irq.h> -#include <linux/gpio.h> #include <linux/iio/iio.h> #include <linux/iio/sysfs.h> @@ -194,7 +190,7 @@ u8 buffer[24] __aligned(8); }; -/** +/* * __si1145_command_reset() - Send CMD_NOP and wait for response 0 * * Does not modify data->rsp_seq @@ -228,7 +224,7 @@ } } -/** +/* * si1145_command() - Execute a command and poll the response register * * All conversion overflows are reported as -EOVERFLOW @@ -1049,7 +1045,7 @@ SI1145_LED_CURRENT_45mA); if (ret < 0) return ret; - /* fallthrough */ + fallthrough; case 2: ret = i2c_smbus_write_byte_data(client, SI1145_REG_PS_LED21, @@ -1178,12 +1174,10 @@ static const struct iio_buffer_setup_ops si1145_buffer_setup_ops = { .preenable = si1145_buffer_preenable, - .postenable = iio_triggered_buffer_postenable, - .predisable = iio_triggered_buffer_predisable, .validate_scan_mask = si1145_validate_scan_mask, }; -/** +/* * si1145_trigger_set_state() - Set trigger state * * When not using triggers interrupts are disabled and measurement rate is @@ -1267,7 +1261,7 @@ return ret; } - ret = iio_trigger_register(trig); + ret = devm_iio_trigger_register(&client->dev, trig); if (ret) return ret; @@ -1275,16 +1269,6 @@ indio_dev->trig = iio_trigger_get(data->trig); return 0; -} - -static void si1145_remove_trigger(struct iio_dev *indio_dev) -{ - struct si1145_data *data = iio_priv(indio_dev); - - if (data->trig) { - iio_trigger_unregister(data->trig); - data->trig = NULL; - } } static int si1145_probe(struct i2c_client *client, @@ -1324,7 +1308,6 @@ return -ENODEV; } - indio_dev->dev.parent = &client->dev; indio_dev->name = id->name; indio_dev->channels = data->part_info->channels; indio_dev->num_channels = data->part_info->num_channels; @@ -1338,7 +1321,8 @@ if (ret < 0) return ret; - ret = iio_triggered_buffer_setup(indio_dev, NULL, + ret = devm_iio_triggered_buffer_setup(&client->dev, + indio_dev, NULL, si1145_trigger_handler, &si1145_buffer_setup_ops); if (ret < 0) return ret; @@ -1346,23 +1330,12 @@ if (client->irq) { ret = si1145_probe_trigger(indio_dev); if (ret < 0) - goto error_free_buffer; + return ret; } else { dev_info(&client->dev, "no irq, using polling\n"); } - ret = iio_device_register(indio_dev); - if (ret < 0) - goto error_free_trigger; - - return 0; - -error_free_trigger: - si1145_remove_trigger(indio_dev); -error_free_buffer: - iio_triggered_buffer_cleanup(indio_dev); - - return ret; + return devm_iio_device_register(&client->dev, indio_dev); } static const struct i2c_device_id si1145_ids[] = { @@ -1377,23 +1350,11 @@ }; MODULE_DEVICE_TABLE(i2c, si1145_ids); -static int si1145_remove(struct i2c_client *client) -{ - struct iio_dev *indio_dev = i2c_get_clientdata(client); - - iio_device_unregister(indio_dev); - si1145_remove_trigger(indio_dev); - iio_triggered_buffer_cleanup(indio_dev); - - return 0; -} - static struct i2c_driver si1145_driver = { .driver = { .name = "si1145", }, .probe = si1145_probe, - .remove = si1145_remove, .id_table = si1145_ids, }; -- Gitblit v1.6.2