disable_vmode_clk();
}
-static void cvbs_out_disable_venc(void)
-{
- info->dwork_flag = 0;
- cvbs_cntl_output(0);
- cvbs_out_reg_write(ENCI_VIDEO_EN, 0);
-
- return;
-}
-
static void cvbs_out_vpu_power_ctrl(int status)
{
if (info->vinfo == NULL)
static void cvbsout_shutdown(struct platform_device *pdev)
{
- cvbs_out_disable_venc();
+ info->dwork_flag = 0;
+ cvbs_out_reg_write(ENCI_VIDEO_EN, 0);
cvbs_out_disable_clk();
cvbs_out_vpu_power_ctrl(0);
if (is_meson_txl_cpu() || is_meson_txlx_cpu())
vdac_hiu_reg_setb(HHI_VDAC_CNTL1, enable, 3, 1);
+ else if (is_meson_g12a_cpu() || is_meson_g12b_cpu())
+ vdac_hiu_reg_setb(HHI_VDAC_CNTL1_G12A, ~enable, 3, 1);
else
vdac_hiu_reg_setb(HHI_VDAC_CNTL1, ~enable, 3, 1);
}
if (!is_meson_g12a_cpu() && !is_meson_g12b_cpu())
vdac_hiu_reg_setb(HHI_VDAC_CNTL0, 0, 10, 1);
/* enable dac output */
- vdac_out_cntl1_bit3(0, 0x4);
+ vdac_out_cntl1_bit3(0, VDAC_MODULE_ATV_DEMOD);
}
break;
case VDAC_MODULE_DTV_DEMOD: /* dtv demod */
static int amvdac_drv_suspend(struct platform_device *pdev,
pm_message_t state)
{
-
pr_info("%s: suspend module\n", __func__);
return 0;
}
}
#endif
+static void amvdac_drv_shutdown(struct platform_device *pdev)
+{
+ unsigned int cntl0, cntl1;
+
+ pr_info("%s: shutdown module\n", __func__);
+ cntl0 = 0x0;
+ if (is_meson_txl_cpu() || is_meson_txlx_cpu())
+ cntl1 = 0x0;
+ else
+ cntl1 = 0x8;
+ vdac_set_ctrl0_ctrl1(cntl0, cntl1);
+}
+
static const struct of_device_id aml_vdac_dt_match[] = {
{
.suspend = amvdac_drv_suspend,
.resume = amvdac_drv_resume,
#endif
+ .shutdown = amvdac_drv_shutdown,
};
static int __init aml_vdac_init(void)