mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
i3c: mipi-i3c-hci: Factor out master dynamic address setting into helper
Prepare for future reuse. Move master dynamic address setting logic from i3c_hci_bus_init() into a dedicated helper function, i3c_hci_set_master_dyn_addr(). Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://patch.msgid.link/20260113072702.16268-19-adrian.hunter@intel.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
parent
f2b5d43c93
commit
3c3de6803a
|
|
@ -114,6 +114,12 @@ static inline struct i3c_hci *to_i3c_hci(struct i3c_master_controller *m)
|
|||
return container_of(m, struct i3c_hci, master);
|
||||
}
|
||||
|
||||
static void i3c_hci_set_master_dyn_addr(struct i3c_hci *hci)
|
||||
{
|
||||
reg_write(MASTER_DEVICE_ADDR,
|
||||
MASTER_DYNAMIC_ADDR(hci->dyn_addr) | MASTER_DYNAMIC_ADDR_VALID);
|
||||
}
|
||||
|
||||
static int i3c_hci_bus_init(struct i3c_master_controller *m)
|
||||
{
|
||||
struct i3c_hci *hci = to_i3c_hci(m);
|
||||
|
|
@ -129,10 +135,10 @@ static int i3c_hci_bus_init(struct i3c_master_controller *m)
|
|||
ret = i3c_master_get_free_addr(m, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
reg_write(MASTER_DEVICE_ADDR,
|
||||
MASTER_DYNAMIC_ADDR(ret) | MASTER_DYNAMIC_ADDR_VALID);
|
||||
hci->dyn_addr = ret;
|
||||
i3c_hci_set_master_dyn_addr(hci);
|
||||
memset(&info, 0, sizeof(info));
|
||||
info.dyn_addr = ret;
|
||||
info.dyn_addr = hci->dyn_addr;
|
||||
ret = i3c_master_set_info(m, &info);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ struct i3c_hci {
|
|||
u8 version_major;
|
||||
u8 version_minor;
|
||||
u8 revision;
|
||||
u8 dyn_addr;
|
||||
u32 vendor_mipi_id;
|
||||
u32 vendor_version_id;
|
||||
u32 vendor_product_id;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user