Lines Matching defs:ctrl
210 int (*non_data_cmd)(struct spmi_controller *ctrl, u8 opc, u8 sid);
262 static int pmic_arb_wait_for_done(struct spmi_controller *ctrl,
266 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
284 dev_err(&ctrl->dev, "%s: %#x %#x: transaction denied (%#x)\n",
290 dev_err(&ctrl->dev, "%s: %#x %#x: transaction failed (%#x)\n",
297 dev_err(&ctrl->dev, "%s: %#x %#x: transaction dropped (%#x)\n",
307 dev_err(&ctrl->dev, "%s: %#x %#x: timeout, status %#x\n",
313 pmic_arb_non_data_cmd_v1(struct spmi_controller *ctrl, u8 opc, u8 sid)
315 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
330 rc = pmic_arb_wait_for_done(ctrl, pmic_arb->wr_base, sid, 0,
338 pmic_arb_non_data_cmd_v2(struct spmi_controller *ctrl, u8 opc, u8 sid)
344 static int pmic_arb_cmd(struct spmi_controller *ctrl, u8 opc, u8 sid)
346 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
348 dev_dbg(&ctrl->dev, "cmd op:0x%x sid:%d\n", opc, sid);
354 return pmic_arb->ver_ops->non_data_cmd(ctrl, opc, sid);
390 static int pmic_arb_read_cmd_unlocked(struct spmi_controller *ctrl, u32 cmd,
394 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
399 rc = pmic_arb_wait_for_done(ctrl, pmic_arb->rd_base, sid, addr,
413 static int pmic_arb_read_cmd(struct spmi_controller *ctrl, u8 opc, u8 sid,
416 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
427 rc = pmic_arb_read_cmd_unlocked(ctrl, cmd, offset, sid, addr, buf, len);
469 static int pmic_arb_write_cmd_unlocked(struct spmi_controller *ctrl, u32 cmd,
473 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
485 return pmic_arb_wait_for_done(ctrl, pmic_arb->wr_base, sid, addr,
489 static int pmic_arb_write_cmd(struct spmi_controller *ctrl, u8 opc, u8 sid,
492 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
503 rc = pmic_arb_write_cmd_unlocked(ctrl, cmd, offset, sid, addr, buf,
510 static int pmic_arb_masked_write(struct spmi_controller *ctrl, u8 sid, u16 addr,
513 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
530 rc = pmic_arb_read_cmd_unlocked(ctrl, read_cmd, read_offset, sid, addr,
538 rc = pmic_arb_write_cmd_unlocked(ctrl, write_cmd, write_offset, sid,
1439 struct spmi_controller *ctrl;
1446 ctrl = spmi_controller_alloc(&pdev->dev, sizeof(*pmic_arb));
1447 if (!ctrl)
1450 pmic_arb = spmi_controller_get_drvdata(ctrl);
1451 pmic_arb->spmic = ctrl;
1464 core = devm_ioremap(&ctrl->dev, res->start, resource_size(res));
1472 pmic_arb->ppid_to_apid = devm_kcalloc(&ctrl->dev, PMIC_ARB_MAX_PPID,
1500 pmic_arb->rd_base = devm_ioremap(&ctrl->dev, res->start,
1509 pmic_arb->wr_base = devm_ioremap(&ctrl->dev, res->start,
1564 pmic_arb->apid_data = devm_kcalloc(&ctrl->dev, pmic_arb->max_periphs,
1572 dev_info(&ctrl->dev, "PMIC arbiter version %s (0x%x)\n",
1576 pmic_arb->intr = devm_ioremap_resource(&ctrl->dev, res);
1583 pmic_arb->cnfg = devm_ioremap_resource(&ctrl->dev, res);
1623 mapping_table = devm_kcalloc(&ctrl->dev, pmic_arb->max_periphs,
1636 platform_set_drvdata(pdev, ctrl);
1639 ctrl->cmd = pmic_arb_cmd;
1640 ctrl->read_cmd = pmic_arb_read_cmd;
1641 ctrl->write_cmd = pmic_arb_write_cmd;
1663 err = spmi_controller_add(ctrl);
1673 spmi_controller_put(ctrl);
1679 struct spmi_controller *ctrl = platform_get_drvdata(pdev);
1680 struct spmi_pmic_arb *pmic_arb = spmi_controller_get_drvdata(ctrl);
1681 spmi_controller_remove(ctrl);
1684 spmi_controller_put(ctrl);