Core changes:
* Export i3c_device_match_id() so driver can get per-device data
* Add addr and lvr fields to i2c_dev_desc so we can attach I2C devices
that are not described in the DT
* Add a missing of_node_put()
* Fix a memory leak
* Use dev_to_i3cmaster() instead of open-coding it
Driver changes:
* Use for_each_set_bit() in the Cadence driver
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEKmCqpbOU668PNA69Ze02AX4ItwAFAl1/N00ACgkQZe02AX4I
twB8wxAAvK2wd7IMXD/GldIjFmqRb94sLMHjbLavKMNv/kmTZM68BoM600pntVO0
+2lmqL7tL/2I5fnI35LJFEe2zS7XqPrh8m9rOZZHvj/uDaZnHxp18a4vwKqpw3gy
QzlvUAQY5fp3dOlLqawKHbUTEwXA4WAuoFQujNimLbluKWZYiU3mBEPcVjYcNqnW
1qn+FckJ7HSNKgIwvMfD7MaF77FSkKiWmAud/Zm23vc0pISuVi4sYBT2UJ90bSBL
npPiW0l9BieAsCWLn1kv0T5AaY7X1LfBkAS10Nb3vxUOXxkHR0GtlG4Xno5cwfqy
bcNH8QwJ9wNi0tNcPxCe0CM1d5k0ekW95VBv4HzRT/wHP/cAcgxhk65jPPCdwuus
IYMp6B0p+G50xW2b7NzQGrLbktzn6kAqfzZWCBmX3/k2V+Y0CmBLarZp1LHL/hBR
51dvqVNlgGG5DBHnAMoYCKbsas6yqXK7rxpXKkW3yhlcHHkn86wx1MI4+XqJAHKH
AQOfuu+sjp35tOelb+wd49jXgWBVPVdQ2rv1h2YK6r2rgpbXE+P/t4R0BbIsIR0z
4wa9lnLaDgjyRaABUFC7YIqjSuHW7NsGJDHMajwsd8WvcUhPNDznTRnhp7o4rWXt
5ERqArQIxYCbVaROsYrgoYtxJ1E9ErnsW6cNxZX7O/6vljBxYLI=
=wXtJ
-----END PGP SIGNATURE-----
Merge tag 'i3c/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux
Pull i3c updates from Boris Brezillon:
"Core changes:
- Export i3c_device_match_id() so driver can get per-device data
- Add addr and lvr fields to i2c_dev_desc so we can attach I2C
devices that are not described in the DT
- Add a missing of_node_put()
- Fix a memory leak
- Use dev_to_i3cmaster() instead of open-coding it
Driver changes:
- Use for_each_set_bit() in the Cadence driver"
* tag 'i3c/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
i3c: master: Use dev_to_i3cmaster()
i3c: master: fix a memory leak bug
i3c: add addr and lvr to i2c_dev_desc structure
i3c: master: cdns: Use for_each_set_bit()
i3c: master: Add of_node_put() before return
i3c: move i3c_device_match_id to device.c and export it
This commit is contained in:
commit
31dda85e49
6 changed files with 90 additions and 73 deletions
|
|
@ -188,6 +188,10 @@ static inline struct i3c_driver *drv_to_i3cdrv(struct device_driver *drv)
|
|||
struct device *i3cdev_to_dev(struct i3c_device *i3cdev);
|
||||
struct i3c_device *dev_to_i3cdev(struct device *dev);
|
||||
|
||||
const struct i3c_device_id *
|
||||
i3c_device_match_id(struct i3c_device *i3cdev,
|
||||
const struct i3c_device_id *id_table);
|
||||
|
||||
static inline void i3cdev_set_drvdata(struct i3c_device *i3cdev,
|
||||
void *data)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -71,6 +71,9 @@ struct i2c_dev_boardinfo {
|
|||
* @common: common part of the I2C device descriptor
|
||||
* @boardinfo: pointer to the boardinfo attached to this I2C device
|
||||
* @dev: I2C device object registered to the I2C framework
|
||||
* @addr: I2C device address
|
||||
* @lvr: LVR (Legacy Virtual Register) needed by the I3C core to know about
|
||||
* the I2C device limitations
|
||||
*
|
||||
* Each I2C device connected on the bus will have an i2c_dev_desc.
|
||||
* This object is created by the core and later attached to the controller
|
||||
|
|
@ -84,6 +87,8 @@ struct i2c_dev_desc {
|
|||
struct i3c_i2c_dev_desc common;
|
||||
const struct i2c_dev_boardinfo *boardinfo;
|
||||
struct i2c_client *dev;
|
||||
u16 addr;
|
||||
u8 lvr;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue