xref: /linux/drivers/accel/ivpu/ivpu_hw_ip.h (revision 8a27ad81f7d3a4bc30e00e334a369b69c5f8da90)
1*8a27ad81SWachowski, Karol /* SPDX-License-Identifier: GPL-2.0-only */
2*8a27ad81SWachowski, Karol /*
3*8a27ad81SWachowski, Karol  * Copyright (C) 2020-2024 Intel Corporation
4*8a27ad81SWachowski, Karol  */
5*8a27ad81SWachowski, Karol 
6*8a27ad81SWachowski, Karol #ifndef __IVPU_HW_IP_H__
7*8a27ad81SWachowski, Karol #define __IVPU_HW_IP_H__
8*8a27ad81SWachowski, Karol 
9*8a27ad81SWachowski, Karol #include "ivpu_drv.h"
10*8a27ad81SWachowski, Karol 
11*8a27ad81SWachowski, Karol int ivpu_hw_ip_host_ss_configure(struct ivpu_device *vdev);
12*8a27ad81SWachowski, Karol void ivpu_hw_ip_idle_gen_enable(struct ivpu_device *vdev);
13*8a27ad81SWachowski, Karol void ivpu_hw_ip_idle_gen_disable(struct ivpu_device *vdev);
14*8a27ad81SWachowski, Karol int ivpu_hw_ip_pwr_domain_enable(struct ivpu_device *vdev);
15*8a27ad81SWachowski, Karol int ivpu_hw_ip_host_ss_axi_enable(struct ivpu_device *vdev);
16*8a27ad81SWachowski, Karol int ivpu_hw_ip_top_noc_enable(struct ivpu_device *vdev);
17*8a27ad81SWachowski, Karol u64 ivpu_hw_ip_read_perf_timer_counter(struct ivpu_device *vdev);
18*8a27ad81SWachowski, Karol void ivpu_hw_ip_snoop_disable(struct ivpu_device *vdev);
19*8a27ad81SWachowski, Karol void ivpu_hw_ip_tbu_mmu_enable(struct ivpu_device *vdev);
20*8a27ad81SWachowski, Karol int ivpu_hw_ip_soc_cpu_boot(struct ivpu_device *vdev);
21*8a27ad81SWachowski, Karol void ivpu_hw_ip_wdt_disable(struct ivpu_device *vdev);
22*8a27ad81SWachowski, Karol void ivpu_hw_ip_diagnose_failure(struct ivpu_device *vdev);
23*8a27ad81SWachowski, Karol u32 ivpu_hw_ip_ipc_rx_count_get(struct ivpu_device *vdev);
24*8a27ad81SWachowski, Karol void ivpu_hw_ip_irq_clear(struct ivpu_device *vdev);
25*8a27ad81SWachowski, Karol bool ivpu_hw_ip_irq_handler_37xx(struct ivpu_device *vdev, int irq, bool *wake_thread);
26*8a27ad81SWachowski, Karol bool ivpu_hw_ip_irq_handler_40xx(struct ivpu_device *vdev, int irq, bool *wake_thread);
27*8a27ad81SWachowski, Karol void ivpu_hw_ip_db_set(struct ivpu_device *vdev, u32 db_id);
28*8a27ad81SWachowski, Karol u32 ivpu_hw_ip_ipc_rx_addr_get(struct ivpu_device *vdev);
29*8a27ad81SWachowski, Karol void ivpu_hw_ip_ipc_tx_set(struct ivpu_device *vdev, u32 vpu_addr);
30*8a27ad81SWachowski, Karol void ivpu_hw_ip_irq_enable(struct ivpu_device *vdev);
31*8a27ad81SWachowski, Karol void ivpu_hw_ip_irq_disable(struct ivpu_device *vdev);
32*8a27ad81SWachowski, Karol void ivpu_hw_ip_diagnose_failure(struct ivpu_device *vdev);
33*8a27ad81SWachowski, Karol void ivpu_hw_ip_fabric_req_override_enable_50xx(struct ivpu_device *vdev);
34*8a27ad81SWachowski, Karol void ivpu_hw_ip_fabric_req_override_disable_50xx(struct ivpu_device *vdev);
35*8a27ad81SWachowski, Karol 
36*8a27ad81SWachowski, Karol #endif /* __IVPU_HW_IP_H__ */
37