Lines Matching defs:spmi_controller
75 struct spmi_controller *controller;
111 static int spmi_read_cmd(struct spmi_controller *ctrl,
114 struct spmi_controller_dev *spmi_controller = dev_get_drvdata(&ctrl->dev);
115 u32 chnl_ofst = SPMI_CHANNEL_OFFSET * spmi_controller->channel;
124 "spmi_controller supports 1..%d bytes per trans, but:%zu requested\n",
150 spin_lock_irqsave(&spmi_controller->lock, flags);
152 writel(cmd, spmi_controller->base + chnl_ofst + SPMI_APB_SPMI_CMD_BASE_ADDR);
154 rc = spmi_controller_wait_for_done(&ctrl->dev, spmi_controller,
155 spmi_controller->base, slave_id, slave_addr);
160 data = readl(spmi_controller->base + chnl_ofst +
175 spin_unlock_irqrestore(&spmi_controller->lock, flags);
187 static int spmi_write_cmd(struct spmi_controller *ctrl,
190 struct spmi_controller_dev *spmi_controller = dev_get_drvdata(&ctrl->dev);
191 u32 chnl_ofst = SPMI_CHANNEL_OFFSET * spmi_controller->channel;
200 "spmi_controller supports 1..%d bytes per trans, but:%zu requested\n",
227 spin_lock_irqsave(&spmi_controller->lock, flags);
240 spmi_controller->base + chnl_ofst +
246 writel(cmd, spmi_controller->base + chnl_ofst + SPMI_APB_SPMI_CMD_BASE_ADDR);
248 rc = spmi_controller_wait_for_done(&ctrl->dev, spmi_controller,
249 spmi_controller->base, slave_id,
251 spin_unlock_irqrestore(&spmi_controller->lock, flags);
265 struct spmi_controller_dev *spmi_controller;
266 struct spmi_controller *ctrl;
270 ctrl = spmi_controller_alloc(&pdev->dev, sizeof(*spmi_controller));
272 dev_err(&pdev->dev, "can not allocate spmi_controller data\n");
275 spmi_controller = spmi_controller_get_drvdata(ctrl);
276 spmi_controller->controller = ctrl;
285 spmi_controller->base = devm_ioremap(&pdev->dev, iores->start,
287 if (!spmi_controller->base) {
294 &spmi_controller->channel);
301 platform_set_drvdata(pdev, spmi_controller);
302 dev_set_drvdata(&ctrl->dev, spmi_controller);
304 spin_lock_init(&spmi_controller->lock);
306 ctrl->nr = spmi_controller->channel;
329 struct spmi_controller *ctrl = platform_get_drvdata(pdev);
366 MODULE_ALIAS("platform:spmi_controller");