xref: /linux/drivers/media/platform/qcom/camss/camss-vfe-vbif.c (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
1f0e8ffb4SVincent Knecht // SPDX-License-Identifier: GPL-2.0-only
2f0e8ffb4SVincent Knecht /*
3f0e8ffb4SVincent Knecht  * camss-vfe-vbif.c
4f0e8ffb4SVincent Knecht  *
5f0e8ffb4SVincent Knecht  * Qualcomm MSM Camera Subsystem - VFE VBIF Module
6f0e8ffb4SVincent Knecht  *
7f0e8ffb4SVincent Knecht  * Copyright (c) 2025, The Linux Foundation. All rights reserved.
8f0e8ffb4SVincent Knecht  *
9f0e8ffb4SVincent Knecht  */
10f0e8ffb4SVincent Knecht 
11f0e8ffb4SVincent Knecht #include <linux/io.h>
12f0e8ffb4SVincent Knecht 
13f0e8ffb4SVincent Knecht #include "camss.h"
14f0e8ffb4SVincent Knecht #include "camss-vfe.h"
15f0e8ffb4SVincent Knecht #include "camss-vfe-vbif.h"
16f0e8ffb4SVincent Knecht 
17*b4fbb13dSVincent Knecht #define VBIF_FIXED_SORT_EN	0x30
18*b4fbb13dSVincent Knecht #define VBIF_FIXED_SORT_SEL0	0x34
19*b4fbb13dSVincent Knecht 
20f0e8ffb4SVincent Knecht void vfe_vbif_write_reg(struct vfe_device *vfe, u32 reg, u32 val)
21f0e8ffb4SVincent Knecht {
22f0e8ffb4SVincent Knecht 	writel_relaxed(val, vfe->vbif_base + reg);
23f0e8ffb4SVincent Knecht }
24f0e8ffb4SVincent Knecht 
25f0e8ffb4SVincent Knecht int vfe_vbif_apply_settings(struct vfe_device *vfe)
26f0e8ffb4SVincent Knecht {
27*b4fbb13dSVincent Knecht 	vfe_vbif_write_reg(vfe, VBIF_FIXED_SORT_EN, 0xfff);
28*b4fbb13dSVincent Knecht 	vfe_vbif_write_reg(vfe, VBIF_FIXED_SORT_SEL0, 0x555000);
29*b4fbb13dSVincent Knecht 
30f0e8ffb4SVincent Knecht 	return 0;
31f0e8ffb4SVincent Knecht }
32