diff options
Diffstat (limited to 'drivers/sbus/char/bbc_i2c.c')
| -rw-r--r-- | drivers/sbus/char/bbc_i2c.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c index c1441ed282eb..90e71ce4bab8 100644 --- a/drivers/sbus/char/bbc_i2c.c +++ b/drivers/sbus/char/bbc_i2c.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-only /* bbc_i2c.c: I2C low-level driver for BBC device on UltraSPARC-III * platforms. * @@ -11,10 +12,10 @@ #include <linux/sched.h> #include <linux/wait.h> #include <linux/delay.h> -#include <linux/init.h> #include <linux/interrupt.h> #include <linux/of.h> -#include <linux/of_device.h> +#include <linux/of_platform.h> +#include <linux/platform_device.h> #include <asm/bbc.h> #include <asm/io.h> @@ -301,13 +302,18 @@ static struct bbc_i2c_bus * attach_one_i2c(struct platform_device *op, int index if (!bp) return NULL; + INIT_LIST_HEAD(&bp->temps); + INIT_LIST_HEAD(&bp->fans); + bp->i2c_control_regs = of_ioremap(&op->resource[0], 0, 0x2, "bbc_i2c_regs"); if (!bp->i2c_control_regs) goto fail; - bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel"); - if (!bp->i2c_bussel_reg) - goto fail; + if (op->num_resources == 2) { + bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel"); + if (!bp->i2c_bussel_reg) + goto fail; + } bp->waiting = 0; init_waitqueue_head(&bp->wq); @@ -352,9 +358,6 @@ fail: return NULL; } -extern int bbc_envctrl_init(struct bbc_i2c_bus *bp); -extern void bbc_envctrl_cleanup(struct bbc_i2c_bus *bp); - static int bbc_i2c_probe(struct platform_device *op) { struct bbc_i2c_bus *bp; @@ -379,7 +382,7 @@ static int bbc_i2c_probe(struct platform_device *op) return err; } -static int bbc_i2c_remove(struct platform_device *op) +static void bbc_i2c_remove(struct platform_device *op) { struct bbc_i2c_bus *bp = dev_get_drvdata(&op->dev); @@ -393,8 +396,6 @@ static int bbc_i2c_remove(struct platform_device *op) of_iounmap(&op->resource[1], bp->i2c_control_regs, 2); kfree(bp); - - return 0; } static const struct of_device_id bbc_i2c_match[] = { @@ -409,7 +410,6 @@ MODULE_DEVICE_TABLE(of, bbc_i2c_match); static struct platform_driver bbc_i2c_driver = { .driver = { .name = "bbc_i2c", - .owner = THIS_MODULE, .of_match_table = bbc_i2c_match, }, .probe = bbc_i2c_probe, @@ -418,4 +418,5 @@ static struct platform_driver bbc_i2c_driver = { module_platform_driver(bbc_i2c_driver); +MODULE_DESCRIPTION("UltraSPARC-III bootbus i2c controller driver"); MODULE_LICENSE("GPL"); |
