Skip to content

Commit ee4eb6e

Browse files
committed
Merge tag 'i2c-for-5.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c fixes from Wolfram Sang: "MAINTAINERS rectifications and a few minor driver fixes" * tag 'i2c-for-5.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: mediatek: Fix an error handling path in mtk_i2c_probe() i2c: designware: Use standard optional ref clock implementation MAINTAINERS: core DT include belongs to core MAINTAINERS: add include/dt-bindings/i2c to I2C SUBSYSTEM HOST DRIVERS i2c: npcm7xx: Add check for platform_driver_register MAINTAINERS: Update Synopsys DesignWare I2C to Supported
2 parents 063232b + de87b60 commit ee4eb6e

File tree

5 files changed

+22
-10
lines changed

5 files changed

+22
-10
lines changed

MAINTAINERS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9276,6 +9276,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
92769276
F: Documentation/devicetree/bindings/i2c/i2c.txt
92779277
F: Documentation/i2c/
92789278
F: drivers/i2c/*
9279+
F: include/dt-bindings/i2c/i2c.h
92799280
F: include/linux/i2c-dev.h
92809281
F: include/linux/i2c-smbus.h
92819282
F: include/linux/i2c.h
@@ -9291,6 +9292,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
92919292
F: Documentation/devicetree/bindings/i2c/
92929293
F: drivers/i2c/algos/
92939294
F: drivers/i2c/busses/
9295+
F: include/dt-bindings/i2c/
92949296

92959297
I2C-TAOS-EVM DRIVER
92969298
M: Jean Delvare <jdelvare@suse.com>
@@ -19305,7 +19307,7 @@ R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
1930519307
R: Mika Westerberg <mika.westerberg@linux.intel.com>
1930619308
R: Jan Dabros <jsd@semihalf.com>
1930719309
L: linux-i2c@vger.kernel.org
19308-
S: Maintained
19310+
S: Supported
1930919311
F: drivers/i2c/busses/i2c-designware-*
1931019312

1931119313
SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER

drivers/i2c/busses/i2c-designware-common.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -477,9 +477,6 @@ int i2c_dw_prepare_clk(struct dw_i2c_dev *dev, bool prepare)
477477
{
478478
int ret;
479479

480-
if (IS_ERR(dev->clk))
481-
return PTR_ERR(dev->clk);
482-
483480
if (prepare) {
484481
/* Optional interface clock */
485482
ret = clk_prepare_enable(dev->pclk);

drivers/i2c/busses/i2c-designware-platdrv.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,17 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
320320
goto exit_reset;
321321
}
322322

323-
dev->clk = devm_clk_get(&pdev->dev, NULL);
324-
if (!i2c_dw_prepare_clk(dev, true)) {
323+
dev->clk = devm_clk_get_optional(&pdev->dev, NULL);
324+
if (IS_ERR(dev->clk)) {
325+
ret = PTR_ERR(dev->clk);
326+
goto exit_reset;
327+
}
328+
329+
ret = i2c_dw_prepare_clk(dev, true);
330+
if (ret)
331+
goto exit_reset;
332+
333+
if (dev->clk) {
325334
u64 clk_khz;
326335

327336
dev->get_clk_rate_khz = i2c_dw_get_clk_rate_khz;

drivers/i2c/busses/i2c-mt65xx.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1420,17 +1420,22 @@ static int mtk_i2c_probe(struct platform_device *pdev)
14201420
if (ret < 0) {
14211421
dev_err(&pdev->dev,
14221422
"Request I2C IRQ %d fail\n", irq);
1423-
return ret;
1423+
goto err_bulk_unprepare;
14241424
}
14251425

14261426
i2c_set_adapdata(&i2c->adap, i2c);
14271427
ret = i2c_add_adapter(&i2c->adap);
14281428
if (ret)
1429-
return ret;
1429+
goto err_bulk_unprepare;
14301430

14311431
platform_set_drvdata(pdev, i2c);
14321432

14331433
return 0;
1434+
1435+
err_bulk_unprepare:
1436+
clk_bulk_unprepare(I2C_MT65XX_CLK_MAX, i2c->clocks);
1437+
1438+
return ret;
14341439
}
14351440

14361441
static int mtk_i2c_remove(struct platform_device *pdev)

drivers/i2c/busses/i2c-npcm7xx.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2372,8 +2372,7 @@ static struct platform_driver npcm_i2c_bus_driver = {
23722372
static int __init npcm_i2c_init(void)
23732373
{
23742374
npcm_i2c_debugfs_dir = debugfs_create_dir("npcm_i2c", NULL);
2375-
platform_driver_register(&npcm_i2c_bus_driver);
2376-
return 0;
2375+
return platform_driver_register(&npcm_i2c_bus_driver);
23772376
}
23782377
module_init(npcm_i2c_init);
23792378

0 commit comments

Comments
 (0)