From a5969cabbb4660eab42b6ef0412cbbd1200cf14d Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Sat, 12 Oct 2024 07:10:09 +0000 Subject: [PATCH] 修改led为gpio --- kernel/drivers/i2c/i2c-core-of.c | 28 +++++++++++----------------- 1 files changed, 11 insertions(+), 17 deletions(-) diff --git a/kernel/drivers/i2c/i2c-core-of.c b/kernel/drivers/i2c/i2c-core-of.c index 5f489a5..2088009 100644 --- a/kernel/drivers/i2c/i2c-core-of.c +++ b/kernel/drivers/i2c/i2c-core-of.c @@ -1,15 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * Linux I2C core OF support code * * Copyright (C) 2008 Jochen Friedrich <jochen@scram.de> * based on a previous patch from Jon Smirl <jonsmirl@gmail.com> * - * Copyright (C) 2013, 2018 Wolfram Sang <wsa@the-dreams.de> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. + * Copyright (C) 2013, 2018 Wolfram Sang <wsa@kernel.org> */ #include <dt-bindings/i2c/i2c.h> @@ -19,6 +15,8 @@ #include <linux/module.h> #include <linux/of.h> #include <linux/of_device.h> +#include <linux/sysfs.h> +#include <trace/hooks/i2c.h> #include "i2c-core.h" @@ -34,6 +32,8 @@ dev_err(dev, "of_i2c: modalias failure on %pOF\n", node); return -EINVAL; } + + trace_android_vh_of_i2c_get_board_info(node, &(info->dev_name)); ret = of_property_read_u32(node, "reg", &addr); if (ret) { @@ -78,11 +78,10 @@ if (ret) return ERR_PTR(ret); - client = i2c_new_device(adap, &info); - if (!client) { + client = i2c_new_client_device(adap, &info); + if (IS_ERR(client)) dev_err(&adap->dev, "of_i2c: Failure registering %pOF\n", node); - return ERR_PTR(-EINVAL); - } + return client; } @@ -117,12 +116,7 @@ of_node_put(bus); } -static int of_dev_node_match(struct device *dev, void *data) -{ - return dev->of_node == data; -} - -static int of_dev_or_parent_node_match(struct device *dev, void *data) +static int of_dev_or_parent_node_match(struct device *dev, const void *data) { if (dev->of_node == data) return 1; @@ -139,7 +133,7 @@ struct device *dev; struct i2c_client *client; - dev = bus_find_device(&i2c_bus_type, NULL, node, of_dev_node_match); + dev = bus_find_device_by_of_node(&i2c_bus_type, node); if (!dev) return NULL; -- Gitblit v1.6.2