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