1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (C) STMicroelectronics SA 2015 4 * Authors: Yannick Fertre <yannick.fertre@st.com> 5 * Hugues Fruchet <hugues.fruchet@st.com> 6 */ 7 8 #ifndef HVA_HW_H 9 #define HVA_HW_H 10 11 #include "hva-mem.h" 12 13 /* HVA Versions */ 14 #define HVA_VERSION_UNKNOWN 0x000 15 #define HVA_VERSION_V400 0x400 16 17 /* HVA command types */ 18 enum hva_hw_cmd_type { 19 /* RESERVED = 0x00 */ 20 /* RESERVED = 0x01 */ 21 H264_ENC = 0x02, 22 /* RESERVED = 0x03 */ 23 /* RESERVED = 0x04 */ 24 /* RESERVED = 0x05 */ 25 /* RESERVED = 0x06 */ 26 /* RESERVED = 0x07 */ 27 REMOVE_CLIENT = 0x08, 28 FREEZE_CLIENT = 0x09, 29 START_CLIENT = 0x0A, 30 FREEZE_ALL = 0x0B, 31 START_ALL = 0x0C, 32 REMOVE_ALL = 0x0D 33 }; 34 35 int hva_hw_probe(struct platform_device *pdev, struct hva_dev *hva); 36 void hva_hw_remove(struct hva_dev *hva); 37 int hva_hw_runtime_suspend(struct device *dev); 38 int hva_hw_runtime_resume(struct device *dev); 39 int hva_hw_execute_task(struct hva_ctx *ctx, enum hva_hw_cmd_type cmd, 40 struct hva_buffer *task); 41 #ifdef CONFIG_VIDEO_STI_HVA_DEBUGFS 42 void hva_hw_dump_regs(struct hva_dev *hva, struct seq_file *s); 43 #endif 44 45 #endif /* HVA_HW_H */ 46