/* * Copyright (C) 2015 Spreadtrum Communications Inc. * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * may be copied, distributed, and modified under those terms. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifdef CONFIG_WCN_PCIE #include "pcie.h" #else #include "./../sdio/sdiohal.h" #endif #include "../include/wcn_glb_reg.h" /* DAP Transfer Request */ #define DAP_TRANSFER_APnDP (1<<0) /* AP : 1 DP: 0 */ #define DAP_TRANSFER_RnW (1<<1) /* R:1 W:0 */ #define DAP_TRANSFER_A2 (1<<2) #define DAP_TRANSFER_A3 (1<<3) #define DAP_TRANSFER_MATCH_VALUE (1<<4) #define DAP_TRANSFER_MATCH_MASK (1<<5) /* DAP Transfer Response */ #define DAP_TRANSFER_OK (1<<0) #define DAP_TRANSFER_WAIT (1<<1) #define DAP_TRANSFER_FAULT (1<<2) #define DAP_TRANSFER_ERROR (1<<3) #define DAP_TRANSFER_MISMATCH (1<<4) /* Debug Port Register Addresses */ #define DP_IDCODE 0x00 /* IDCODE Register (SW Read only) */ #define DP_ABORT 0x00 /* Abort Register (SW Write only) */ #define DP_CTRL_STAT 0x04 /* Control & Status */ #define DP_WCR 0x04 /* Wire Control Register (SW Only) */ #define DP_SELECT 0x08 /* Select Register (JTAG R/W & SW W) */ #define DP_RESEND 0x08 /* Resend (SW Read Only) */ #define DP_RDBUFF 0x0C /* Read Buffer (Read Only) */ #define DP_TARGETSEL 0x0C /* Targetsel (Read Only) */ #define AP_CTRL 0x00 #define AP_STAT 0x00 #define AP_IDCODE 0x0c /* APIDR 0xFC, bank:0xc */ #define TARGETSEL_AON 0X22000001 #define TARGETSEL_AP 0X12000001 #define TARGETSEL_CP 0X02000001 #define DAP_ADDR 0x1A0 #define DAP_ACK_ADDR (0x140 + 0x0F) void hold_btwf_core(void); void set_debug_mode(void); int swd_dump_arm_reg(void);