Lines Matching refs:ctrl
191 int (*non_data_cmd)(struct spmi_controller *ctrl, u8 opc, u8 sid);
242 static int pmic_arb_wait_for_done(struct spmi_controller *ctrl,
246 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
264 dev_err(&ctrl->dev, "%s: transaction denied (0x%x)\n",
270 dev_err(&ctrl->dev, "%s: transaction failed (0x%x)\n",
276 dev_err(&ctrl->dev, "%s: transaction dropped (0x%x)\n",
286 dev_err(&ctrl->dev, "%s: timeout, status 0x%x\n",
292 pmic_arb_non_data_cmd_v1(struct spmi_controller *ctrl, u8 opc, u8 sid)
294 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
309 rc = pmic_arb_wait_for_done(ctrl, pmic_arb->wr_base, sid, 0,
317 pmic_arb_non_data_cmd_v2(struct spmi_controller *ctrl, u8 opc, u8 sid)
323 static int pmic_arb_cmd(struct spmi_controller *ctrl, u8 opc, u8 sid)
325 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
327 dev_dbg(&ctrl->dev, "cmd op:0x%x sid:%d\n", opc, sid);
333 return pmic_arb->ver_ops->non_data_cmd(ctrl, opc, sid);
336 static int pmic_arb_read_cmd(struct spmi_controller *ctrl, u8 opc, u8 sid,
339 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
353 dev_err(&ctrl->dev, "pmic-arb supports 1..%d bytes per trans, but:%zu requested",
372 rc = pmic_arb_wait_for_done(ctrl, pmic_arb->rd_base, sid, addr,
389 static int pmic_arb_write_cmd(struct spmi_controller *ctrl, u8 opc, u8 sid,
392 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
406 dev_err(&ctrl->dev, "pmic-arb supports 1..%d bytes per trans, but:%zu requested",
435 rc = pmic_arb_wait_for_done(ctrl, pmic_arb->wr_base, sid, addr,
1159 struct spmi_controller *ctrl;
1166 ctrl = spmi_controller_alloc(&pdev->dev, sizeof(*pmic_arb));
1167 if (!ctrl)
1170 pmic_arb = spmi_controller_get_drvdata(ctrl);
1171 pmic_arb->spmic = ctrl;
1174 core = devm_ioremap_resource(&ctrl->dev, res);
1182 pmic_arb->ppid_to_apid = devm_kcalloc(&ctrl->dev, PMIC_ARB_MAX_PPID,
1208 pmic_arb->rd_base = devm_ioremap_resource(&ctrl->dev, res);
1216 pmic_arb->wr_base = devm_ioremap_resource(&ctrl->dev, res);
1223 dev_info(&ctrl->dev, "PMIC arbiter version %s (0x%x)\n",
1227 pmic_arb->intr = devm_ioremap_resource(&ctrl->dev, res);
1234 pmic_arb->cnfg = devm_ioremap_resource(&ctrl->dev, res);
1274 mapping_table = devm_kcalloc(&ctrl->dev, PMIC_ARB_MAX_PERIPHS,
1287 platform_set_drvdata(pdev, ctrl);
1290 ctrl->cmd = pmic_arb_cmd;
1291 ctrl->read_cmd = pmic_arb_read_cmd;
1292 ctrl->write_cmd = pmic_arb_write_cmd;
1314 err = spmi_controller_add(ctrl);
1324 spmi_controller_put(ctrl);
1330 struct spmi_controller *ctrl = platform_get_drvdata(pdev);
1331 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
1332 spmi_controller_remove(ctrl);
1335 spmi_controller_put(ctrl);