Lines Matching +full:mt8173 +full:- +full:disp +full:- +full:aal
1 // SPDX-License-Identifier: GPL-2.0-only
12 #include <linux/soc/mediatek/mtk-cmdq.h>
40 * struct mtk_disp_aal - Display Adaptive Ambient Light driver structure
55 struct mtk_disp_aal *aal = dev_get_drvdata(dev); in mtk_aal_clk_enable() local
57 return clk_prepare_enable(aal->clk); in mtk_aal_clk_enable()
62 struct mtk_disp_aal *aal = dev_get_drvdata(dev); in mtk_aal_clk_disable() local
64 clk_disable_unprepare(aal->clk); in mtk_aal_clk_disable()
71 struct mtk_disp_aal *aal = dev_get_drvdata(dev); in mtk_aal_config() local
77 mtk_ddp_write(cmdq_pkt, sz, &aal->cmdq_reg, aal->regs, DISP_AAL_SIZE); in mtk_aal_config()
78 mtk_ddp_write(cmdq_pkt, sz, &aal->cmdq_reg, aal->regs, DISP_AAL_OUTPUT_SIZE); in mtk_aal_config()
82 * mtk_aal_gamma_get_lut_size() - Get gamma LUT size for AAL
85 * Return: 0 if gamma control not supported in AAL or gamma LUT size
89 struct mtk_disp_aal *aal = dev_get_drvdata(dev); in mtk_aal_gamma_get_lut_size() local
91 if (aal->data && aal->data->has_gamma) in mtk_aal_gamma_get_lut_size()
98 struct mtk_disp_aal *aal = dev_get_drvdata(dev); in mtk_aal_gamma_set() local
103 /* If gamma is not supported in AAL, go out immediately */ in mtk_aal_gamma_set()
104 if (!(aal->data && aal->data->has_gamma)) in mtk_aal_gamma_set()
108 if (!state->gamma_lut) in mtk_aal_gamma_set()
111 lut = (struct drm_color_lut *)state->gamma_lut->data; in mtk_aal_gamma_set()
123 writel(word, aal->regs + DISP_AAL_GAMMA_LUT + i * 4); in mtk_aal_gamma_set()
126 cfg_val = readl(aal->regs + DISP_AAL_CFG); in mtk_aal_gamma_set()
134 writel(cfg_val, aal->regs + DISP_AAL_CFG); in mtk_aal_gamma_set()
139 struct mtk_disp_aal *aal = dev_get_drvdata(dev); in mtk_aal_start() local
141 writel(AAL_EN, aal->regs + DISP_AAL_EN); in mtk_aal_start()
146 struct mtk_disp_aal *aal = dev_get_drvdata(dev); in mtk_aal_stop() local
148 writel_relaxed(0x0, aal->regs + DISP_AAL_EN); in mtk_aal_stop()
169 struct device *dev = &pdev->dev; in mtk_disp_aal_probe()
175 return -ENOMEM; in mtk_disp_aal_probe()
177 priv->clk = devm_clk_get(dev, NULL); in mtk_disp_aal_probe()
178 if (IS_ERR(priv->clk)) { in mtk_disp_aal_probe()
179 dev_err(dev, "failed to get aal clk\n"); in mtk_disp_aal_probe()
180 return PTR_ERR(priv->clk); in mtk_disp_aal_probe()
183 priv->regs = devm_platform_ioremap_resource(pdev, 0); in mtk_disp_aal_probe()
184 if (IS_ERR(priv->regs)) { in mtk_disp_aal_probe()
185 dev_err(dev, "failed to ioremap aal\n"); in mtk_disp_aal_probe()
186 return PTR_ERR(priv->regs); in mtk_disp_aal_probe()
190 ret = cmdq_dev_get_client_reg(dev, &priv->cmdq_reg, 0); in mtk_disp_aal_probe()
192 dev_dbg(dev, "get mediatek,gce-client-reg fail!\n"); in mtk_disp_aal_probe()
195 priv->data = of_device_get_match_data(dev); in mtk_disp_aal_probe()
207 component_del(&pdev->dev, &mtk_disp_aal_component_ops); in mtk_disp_aal_remove()
215 { .compatible = "mediatek,mt8173-disp-aal", .data = &mt8173_aal_driver_data },
216 { .compatible = "mediatek,mt8183-disp-aal" },
225 .name = "mediatek-disp-aal",