Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
"Some I2C driver bugfixes (and one documentation fix)"

* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: i2c-mux-pca954x: fix deselect enabling for device-tree
i2c: digicolor: use clk_disable_unprepare instead of clk_unprepare
i2c: mux: fix up dependencies
i2c: Documentation: i2c-topology: fix minor whitespace nit
i2c: mux: demux-pinctrl: make drivers with no pinctrl work again

+26 -8
+2 -2
Documentation/i2c/i2c-topology
··· 326 326 327 327 This is a good topology. 328 328 329 - .--------. 329 + .--------. 330 330 .----------. .--| dev D1 | 331 331 | parent- |--' '--------' 332 332 .--| locked | .--------. ··· 350 350 351 351 This is a good topology. 352 352 353 - .--------. 353 + .--------. 354 354 .----------. .--| dev D1 | 355 355 | mux- |--' '--------' 356 356 .--| locked | .--------.
-1
drivers/i2c/Kconfig
··· 59 59 60 60 config I2C_MUX 61 61 tristate "I2C bus multiplexing support" 62 - depends on HAS_IOMEM 63 62 help 64 63 Say Y here if you want the I2C core to support the ability to 65 64 handle multiplexed I2C bus topologies, by presenting each
+1 -1
drivers/i2c/busses/i2c-digicolor.c
··· 347 347 348 348 ret = i2c_add_adapter(&i2c->adap); 349 349 if (ret < 0) { 350 - clk_unprepare(i2c->clk); 350 + clk_disable_unprepare(i2c->clk); 351 351 return ret; 352 352 } 353 353
+1
drivers/i2c/muxes/Kconfig
··· 63 63 64 64 config I2C_MUX_REG 65 65 tristate "Register-based I2C multiplexer" 66 + depends on HAS_IOMEM 66 67 help 67 68 If you say yes to this option, support will be included for a 68 69 register based I2C multiplexer. This driver provides access to
+20 -2
drivers/i2c/muxes/i2c-demux-pinctrl.c
··· 69 69 goto err_with_revert; 70 70 } 71 71 72 - p = devm_pinctrl_get_select(adap->dev.parent, priv->bus_name); 72 + /* 73 + * Check if there are pinctrl states at all. Note: we cant' use 74 + * devm_pinctrl_get_select() because we need to distinguish between 75 + * the -ENODEV from devm_pinctrl_get() and pinctrl_lookup_state(). 76 + */ 77 + p = devm_pinctrl_get(adap->dev.parent); 73 78 if (IS_ERR(p)) { 74 79 ret = PTR_ERR(p); 75 - goto err_with_put; 80 + /* continue if just no pinctrl states (e.g. i2c-gpio), otherwise exit */ 81 + if (ret != -ENODEV) 82 + goto err_with_put; 83 + } else { 84 + /* there are states. check and use them */ 85 + struct pinctrl_state *s = pinctrl_lookup_state(p, priv->bus_name); 86 + 87 + if (IS_ERR(s)) { 88 + ret = PTR_ERR(s); 89 + goto err_with_put; 90 + } 91 + ret = pinctrl_select_state(p, s); 92 + if (ret < 0) 93 + goto err_with_put; 76 94 } 77 95 78 96 priv->chan[new_chan].parent_adap = adap;
+2 -2
drivers/i2c/muxes/i2c-mux-pca954x.c
··· 268 268 /* discard unconfigured channels */ 269 269 break; 270 270 idle_disconnect_pd = pdata->modes[num].deselect_on_exit; 271 - data->deselect |= (idle_disconnect_pd 272 - || idle_disconnect_dt) << num; 273 271 } 272 + data->deselect |= (idle_disconnect_pd || 273 + idle_disconnect_dt) << num; 274 274 275 275 ret = i2c_mux_add_adapter(muxc, force, num, class); 276 276