Lines Matching defs:dev
845 static int dw_i3c_master_priv_xfers(struct i3c_dev_desc *dev,
849 struct dw_i3c_i2c_dev_data *data = i3c_dev_get_master_data(dev);
850 struct i3c_master_controller *m = i3c_dev_get_master(dev);
887 COMMAND_PORT_SPEED(dev->info.max_read_ds);
893 COMMAND_PORT_SPEED(dev->info.max_write_ds);
921 static int dw_i3c_master_reattach_i3c_dev(struct i3c_dev_desc *dev,
924 struct dw_i3c_i2c_dev_data *data = i3c_dev_get_master_data(dev);
925 struct i3c_master_controller *m = i3c_dev_get_master(dev);
940 master->devs[pos].addr = dev->info.dyn_addr;
944 writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(dev->info.dyn_addr),
948 master->devs[data->index].addr = dev->info.dyn_addr;
953 static int dw_i3c_master_attach_i3c_dev(struct i3c_dev_desc *dev)
955 struct i3c_master_controller *m = i3c_dev_get_master(dev);
969 master->devs[pos].addr = dev->info.dyn_addr ? : dev->info.static_addr;
971 i3c_dev_set_master_data(dev, data);
980 static void dw_i3c_master_detach_i3c_dev(struct i3c_dev_desc *dev)
982 struct dw_i3c_i2c_dev_data *data = i3c_dev_get_master_data(dev);
983 struct i3c_master_controller *m = i3c_dev_get_master(dev);
990 i3c_dev_set_master_data(dev, NULL);
996 static int dw_i3c_master_i2c_xfers(struct i2c_dev_desc *dev,
1000 struct dw_i3c_i2c_dev_data *data = i2c_dev_get_master_data(dev);
1001 struct i3c_master_controller *m = i2c_dev_get_master(dev);
1061 static int dw_i3c_master_attach_i2c_dev(struct i2c_dev_desc *dev)
1063 struct i3c_master_controller *m = i2c_dev_get_master(dev);
1077 master->devs[pos].addr = dev->addr;
1079 i2c_dev_set_master_data(dev, data);
1082 DEV_ADDR_TABLE_STATIC_ADDR(dev->addr),
1089 static void dw_i3c_master_detach_i2c_dev(struct i2c_dev_desc *dev)
1091 struct dw_i3c_i2c_dev_data *data = i2c_dev_get_master_data(dev);
1092 struct i3c_master_controller *m = i2c_dev_get_master(dev);
1099 i2c_dev_set_master_data(dev, NULL);
1105 static int dw_i3c_master_request_ibi(struct i3c_dev_desc *dev,
1108 struct dw_i3c_i2c_dev_data *data = i3c_dev_get_master_data(dev);
1109 struct i3c_master_controller *m = i3c_dev_get_master(dev);
1113 data->ibi_pool = i3c_generic_ibi_alloc_pool(dev, req);
1118 master->devs[data->index].ibi_dev = dev;
1124 static void dw_i3c_master_free_ibi(struct i3c_dev_desc *dev)
1126 struct dw_i3c_i2c_dev_data *data = i3c_dev_get_master_data(dev);
1127 struct i3c_master_controller *m = i3c_dev_get_master(dev);
1140 struct i3c_dev_desc *dev,
1153 if (dev->info.bcr & I3C_BCR_IBI_PAYLOAD)
1158 master->platform_ops->set_dat_ibi(master, dev, enable, ®);
1190 static int dw_i3c_master_enable_ibi(struct i3c_dev_desc *dev)
1192 struct dw_i3c_i2c_dev_data *data = i3c_dev_get_master_data(dev);
1193 struct i3c_master_controller *m = i3c_dev_get_master(dev);
1197 dw_i3c_master_set_sir_enabled(master, dev, data->index, true);
1199 rc = i3c_master_enec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR);
1202 dw_i3c_master_set_sir_enabled(master, dev, data->index, false);
1207 static int dw_i3c_master_disable_ibi(struct i3c_dev_desc *dev)
1209 struct dw_i3c_i2c_dev_data *data = i3c_dev_get_master_data(dev);
1210 struct i3c_master_controller *m = i3c_dev_get_master(dev);
1214 rc = i3c_master_disec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR);
1218 dw_i3c_master_set_sir_enabled(master, dev, data->index, false);
1223 static void dw_i3c_master_recycle_ibi_slot(struct i3c_dev_desc *dev,
1226 struct dw_i3c_i2c_dev_data *data = i3c_dev_get_master_data(dev);
1245 struct i3c_dev_desc *dev;
1267 dev_dbg_ratelimited(&master->base.dev,
1272 dev = master->devs[idx].ibi_dev;
1273 if (!dev || !dev->ibi) {
1274 dev_dbg_ratelimited(&master->base.dev,
1275 "IBI from non-requested dev idx %d\n", idx);
1279 data = i3c_dev_get_master_data(dev);
1282 dev_dbg_ratelimited(&master->base.dev,
1287 if (dev->ibi->max_payload_len < len) {
1288 dev_dbg_ratelimited(&master->base.dev,
1290 len, dev->ibi->max_payload_len);
1298 i3c_master_queue_ibi(dev, slot);
1331 dev_info(&master->base.dev,
1405 struct i3c_dev_desc *dev,
1428 master->core_clk = devm_clk_get(&pdev->dev, NULL);
1432 master->core_rst = devm_reset_control_get_optional_exclusive(&pdev->dev,
1448 ret = devm_request_irq(&pdev->dev, irq,
1450 dev_name(&pdev->dev), master);
1472 ret = i3c_master_register(&master->base, &pdev->dev, ops, false);
1504 master = devm_kzalloc(&pdev->dev, sizeof(*master), GFP_KERNEL);