FILE
ipu7-buttress.h
File preview with syntax highlighting.
linux-6.19.14/drivers/staging/media/ipu7/ipu7-buttress.h
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2013 - 2025 Intel Corporation 4 */ 5 6#ifndef IPU7_BUTTRESS_H 7#define IPU7_BUTTRESS_H 8 9#include <linux/completion.h> 10#include <linux/irqreturn.h> 11#include <linux/list.h> 12#include <linux/mutex.h> 13 14struct device; 15struct ipu7_device; 16 17struct ipu_buttress_ctrl { 18 u32 subsys_id; 19 u32 freq_ctl, pwr_sts_shift, pwr_sts_mask, pwr_sts_on, pwr_sts_off; 20 u32 ratio; 21 u32 ratio_shift; 22 u32 cdyn; 23 u32 cdyn_shift; 24 u32 ovrd_clk; 25 u32 own_clk_ack; 26}; 27 28struct ipu_buttress_ipc { 29 struct completion send_complete; 30 struct completion recv_complete; 31 u32 nack; 32 u32 nack_mask; 33 u32 recv_data; 34 u32 csr_out; 35 u32 csr_in; 36 u32 db0_in; 37 u32 db0_out; 38 u32 data0_out; 39 u32 data0_in; 40}; 41 42struct ipu_buttress { 43 struct mutex power_mutex, auth_mutex, cons_mutex, ipc_mutex; 44 struct ipu_buttress_ipc cse; 45 u32 psys_min_freq; 46 u32 wdt_cached_value; 47 u8 psys_force_ratio; 48 bool force_suspend; 49 u32 ref_clk; 50}; 51 52int ipu_buttress_ipc_reset(struct ipu7_device *isp, 53 struct ipu_buttress_ipc *ipc); 54int ipu_buttress_powerup(struct device *dev, 55 const struct ipu_buttress_ctrl *ctrl); 56int ipu_buttress_powerdown(struct device *dev, 57 const struct ipu_buttress_ctrl *ctrl); 58bool ipu_buttress_get_secure_mode(struct ipu7_device *isp); 59int ipu_buttress_authenticate(struct ipu7_device *isp); 60int ipu_buttress_reset_authentication(struct ipu7_device *isp); 61bool ipu_buttress_auth_done(struct ipu7_device *isp); 62int ipu_buttress_get_isys_freq(struct ipu7_device *isp, u32 *freq); 63int ipu_buttress_get_psys_freq(struct ipu7_device *isp, u32 *freq); 64int ipu_buttress_start_tsc_sync(struct ipu7_device *isp); 65void ipu_buttress_tsc_read(struct ipu7_device *isp, u64 *val); 66u64 ipu_buttress_tsc_ticks_to_ns(u64 ticks, const struct ipu7_device *isp); 67 68irqreturn_t ipu_buttress_isr(int irq, void *isp_ptr); 69irqreturn_t ipu_buttress_isr_threaded(int irq, void *isp_ptr); 70int ipu_buttress_init(struct ipu7_device *isp); 71void ipu_buttress_exit(struct ipu7_device *isp); 72void ipu_buttress_csi_port_config(struct ipu7_device *isp, 73 u32 legacy, u32 combo); 74void ipu_buttress_restore(struct ipu7_device *isp); 75void ipu_buttress_wakeup_is_uc(const struct ipu7_device *isp); 76void ipu_buttress_wakeup_ps_uc(const struct ipu7_device *isp); 77#endif /* IPU7_BUTTRESS_H */
~/
Read-only file preview.