Lines Matching +full:mt8173 +full:- +full:hdmi
1 // SPDX-License-Identifier: GPL-2.0-only
65 void __iomem *reg = cec->regs + offset; in mtk_cec_clear_bits()
76 void __iomem *reg = cec->regs + offset; in mtk_cec_set_bits()
87 u32 tmp = readl(cec->regs + offset) & ~mask; in mtk_cec_mask()
90 writel(tmp, cec->regs + offset); in mtk_cec_mask()
100 spin_lock_irqsave(&cec->lock, flags); in mtk_cec_set_hpd_event()
101 cec->hdmi_dev = hdmi_dev; in mtk_cec_set_hpd_event()
102 cec->hpd_event = hpd_event; in mtk_cec_set_hpd_event()
103 spin_unlock_irqrestore(&cec->lock, flags); in mtk_cec_set_hpd_event()
111 status = readl(cec->regs + RX_EVENT); in mtk_cec_hpd_high()
157 spin_lock_irqsave(&cec->lock, flags); in mtk_cec_hpd_event()
158 hpd_event = cec->hpd_event; in mtk_cec_hpd_event()
159 hdmi_dev = cec->hdmi_dev; in mtk_cec_hpd_event()
160 spin_unlock_irqrestore(&cec->lock, flags); in mtk_cec_hpd_event()
175 if (cec->hpd != hpd) { in mtk_cec_htplg_isr_thread()
177 cec->hpd, hpd); in mtk_cec_htplg_isr_thread()
178 cec->hpd = hpd; in mtk_cec_htplg_isr_thread()
186 struct device *dev = &pdev->dev; in mtk_cec_probe()
192 return -ENOMEM; in mtk_cec_probe()
195 spin_lock_init(&cec->lock); in mtk_cec_probe()
197 cec->regs = devm_platform_ioremap_resource(pdev, 0); in mtk_cec_probe()
198 if (IS_ERR(cec->regs)) in mtk_cec_probe()
199 return dev_err_probe(dev, PTR_ERR(cec->regs), in mtk_cec_probe()
202 cec->clk = devm_clk_get(dev, NULL); in mtk_cec_probe()
203 if (IS_ERR(cec->clk)) in mtk_cec_probe()
204 return dev_err_probe(dev, PTR_ERR(cec->clk), in mtk_cec_probe()
207 cec->irq = platform_get_irq(pdev, 0); in mtk_cec_probe()
208 if (cec->irq < 0) in mtk_cec_probe()
209 return cec->irq; in mtk_cec_probe()
211 ret = devm_request_threaded_irq(dev, cec->irq, NULL, in mtk_cec_probe()
214 IRQF_ONESHOT, "hdmi hpd", dev); in mtk_cec_probe()
218 ret = clk_prepare_enable(cec->clk); in mtk_cec_probe()
233 clk_disable_unprepare(cec->clk); in mtk_cec_remove()
237 { .compatible = "mediatek,mt8173-cec", },
246 .name = "mediatek-cec",