Branch data Line data Source code
1 : : /* SPDX-License-Identifier: ISC */ 2 : : /* 3 : : * Copyright (c) 2016 Qualcomm Atheros, Inc. All rights reserved. 4 : : * Copyright (c) 2015 The Linux Foundation. All rights reserved. 5 : : */ 6 : : 7 : : #ifndef _AHB_H_ 8 : : #define _AHB_H_ 9 : : 10 : : #include <linux/platform_device.h> 11 : : 12 : : struct ath10k_ahb { 13 : : struct platform_device *pdev; 14 : : void __iomem *mem; 15 : : unsigned long mem_len; 16 : : void __iomem *gcc_mem; 17 : : void __iomem *tcsr_mem; 18 : : 19 : : int irq; 20 : : 21 : : struct clk *cmd_clk; 22 : : struct clk *ref_clk; 23 : : struct clk *rtc_clk; 24 : : 25 : : struct reset_control *core_cold_rst; 26 : : struct reset_control *radio_cold_rst; 27 : : struct reset_control *radio_warm_rst; 28 : : struct reset_control *radio_srif_rst; 29 : : struct reset_control *cpu_init_rst; 30 : : }; 31 : : 32 : : #ifdef CONFIG_ATH10K_AHB 33 : : 34 : : #define ATH10K_GCC_REG_BASE 0x1800000 35 : : #define ATH10K_GCC_REG_SIZE 0x60000 36 : : 37 : : #define ATH10K_TCSR_REG_BASE 0x1900000 38 : : #define ATH10K_TCSR_REG_SIZE 0x80000 39 : : 40 : : #define ATH10K_AHB_GCC_FEPLL_PLL_DIV 0x2f020 41 : : #define ATH10K_AHB_WIFI_SCRATCH_5_REG 0x4f014 42 : : 43 : : #define ATH10K_AHB_WLAN_CORE_ID_REG 0x82030 44 : : 45 : : #define ATH10K_AHB_TCSR_WIFI0_GLB_CFG 0x49000 46 : : #define ATH10K_AHB_TCSR_WIFI1_GLB_CFG 0x49004 47 : : #define TCSR_WIFIX_GLB_CFG_DISABLE_CORE_CLK BIT(25) 48 : : 49 : : #define ATH10K_AHB_TCSR_WCSS0_HALTREQ 0x52000 50 : : #define ATH10K_AHB_TCSR_WCSS1_HALTREQ 0x52010 51 : : #define ATH10K_AHB_TCSR_WCSS0_HALTACK 0x52004 52 : : #define ATH10K_AHB_TCSR_WCSS1_HALTACK 0x52014 53 : : 54 : : #define ATH10K_AHB_AXI_BUS_HALT_TIMEOUT 10 /* msec */ 55 : : #define AHB_AXI_BUS_HALT_REQ 1 56 : : #define AHB_AXI_BUS_HALT_ACK 1 57 : : 58 : : #define ATH10K_AHB_CORE_CTRL_CPU_INTR_MASK 1 59 : : 60 : : int ath10k_ahb_init(void); 61 : : void ath10k_ahb_exit(void); 62 : : 63 : : #else /* CONFIG_ATH10K_AHB */ 64 : : 65 : 28 : static inline int ath10k_ahb_init(void) 66 : : { 67 : 28 : return 0; 68 : : } 69 : : 70 : 0 : static inline void ath10k_ahb_exit(void) 71 : : { 72 : 0 : } 73 : : 74 : : #endif /* CONFIG_ATH10K_AHB */ 75 : : 76 : : #endif /* _AHB_H_ */