Lines Matching full:adp
33 static int adp_dsi_gen_pkt_hdr_write(struct adp_mipi_drv_private *adp, u32 hdr_val) in adp_dsi_gen_pkt_hdr_write() argument
38 ret = readl_poll_timeout(adp->mipi + DSI_CMD_PKT_STATUS, in adp_dsi_gen_pkt_hdr_write()
42 dev_err(adp->dsi.dev, "failed to get available command FIFO\n"); in adp_dsi_gen_pkt_hdr_write()
46 writel(hdr_val, adp->mipi + DSI_GEN_HDR); in adp_dsi_gen_pkt_hdr_write()
49 ret = readl_poll_timeout(adp->mipi + DSI_CMD_PKT_STATUS, in adp_dsi_gen_pkt_hdr_write()
53 dev_err(adp->dsi.dev, "failed to write command FIFO\n"); in adp_dsi_gen_pkt_hdr_write()
60 static int adp_dsi_write(struct adp_mipi_drv_private *adp, in adp_dsi_write() argument
72 writel(le32_to_cpu(word), adp->mipi + DSI_GEN_PLD_DATA); in adp_dsi_write()
76 writel(le32_to_cpu(word), adp->mipi + DSI_GEN_PLD_DATA); in adp_dsi_write()
81 ret = readl_poll_timeout(adp->mipi + DSI_CMD_PKT_STATUS, in adp_dsi_write()
85 dev_err(adp->dsi.dev, in adp_dsi_write()
93 return adp_dsi_gen_pkt_hdr_write(adp, le32_to_cpu(word)); in adp_dsi_write()
96 static int adp_dsi_read(struct adp_mipi_drv_private *adp, in adp_dsi_read() argument
104 ret = readl_poll_timeout(adp->mipi + DSI_CMD_PKT_STATUS, in adp_dsi_read()
108 dev_err(adp->dsi.dev, "Timeout during read operation\n"); in adp_dsi_read()
114 ret = readl_poll_timeout(adp->mipi + DSI_CMD_PKT_STATUS, in adp_dsi_read()
118 dev_err(adp->dsi.dev, "Read payload FIFO is empty\n"); in adp_dsi_read()
122 val = readl(adp->mipi + DSI_GEN_PLD_DATA); in adp_dsi_read()
133 struct adp_mipi_drv_private *adp = mipi_to_adp(host); in adp_dsi_host_transfer() local
139 dev_err(adp->dsi.dev, "failed to create packet: %d\n", ret); in adp_dsi_host_transfer()
143 ret = adp_dsi_write(adp, &packet); in adp_dsi_host_transfer()
148 ret = adp_dsi_read(adp, msg); in adp_dsi_host_transfer()
176 struct adp_mipi_drv_private *adp = mipi_to_adp(host); in adp_dsi_host_attach() local
180 next = devm_drm_of_get_bridge(adp->dsi.dev, adp->dsi.dev->of_node, 1, 0); in adp_dsi_host_attach()
184 adp->next_bridge = next; in adp_dsi_host_attach()
186 drm_bridge_add(&adp->bridge); in adp_dsi_host_attach()
191 drm_bridge_remove(&adp->bridge); in adp_dsi_host_attach()
201 struct adp_mipi_drv_private *adp = mipi_to_adp(host); in adp_dsi_host_detach() local
204 drm_bridge_remove(&adp->bridge); in adp_dsi_host_detach()
217 struct adp_mipi_drv_private *adp = in adp_dsi_bridge_attach() local
220 return drm_bridge_attach(bridge->encoder, adp->next_bridge, bridge, flags); in adp_dsi_bridge_attach()
229 struct adp_mipi_drv_private *adp; in adp_mipi_probe() local
231 adp = devm_kzalloc(&pdev->dev, sizeof(*adp), GFP_KERNEL); in adp_mipi_probe()
232 if (!adp) in adp_mipi_probe()
235 adp->mipi = devm_platform_ioremap_resource(pdev, 0); in adp_mipi_probe()
236 if (IS_ERR(adp->mipi)) { in adp_mipi_probe()
238 return PTR_ERR(adp->mipi); in adp_mipi_probe()
241 adp->dsi.dev = &pdev->dev; in adp_mipi_probe()
242 adp->dsi.ops = &adp_dsi_host_ops; in adp_mipi_probe()
243 adp->bridge.funcs = &adp_dsi_bridge_funcs; in adp_mipi_probe()
244 adp->bridge.of_node = pdev->dev.of_node; in adp_mipi_probe()
245 adp->bridge.type = DRM_MODE_CONNECTOR_DSI; in adp_mipi_probe()
246 dev_set_drvdata(&pdev->dev, adp); in adp_mipi_probe()
247 return mipi_dsi_host_register(&adp->dsi); in adp_mipi_probe()
253 struct adp_mipi_drv_private *adp = dev_get_drvdata(dev); in adp_mipi_remove() local
255 mipi_dsi_host_unregister(&adp->dsi); in adp_mipi_remove()
266 .name = "adp-mipi",