Pratik Patel | b8bb403 | 2012-07-22 23:09:11 -0700 | [diff] [blame] | 1 | /* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved. |
Pratik Patel | 7831c08 | 2011-06-08 21:44:37 -0700 | [diff] [blame] | 2 | * |
| 3 | * This program is free software; you can redistribute it and/or modify |
| 4 | * it under the terms of the GNU General Public License version 2 and |
| 5 | * only version 2 as published by the Free Software Foundation. |
| 6 | * |
| 7 | * This program is distributed in the hope that it will be useful, |
| 8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 10 | * GNU General Public License for more details. |
| 11 | */ |
| 12 | |
Pratik Patel | 6fb3834 | 2012-06-03 14:51:38 -0700 | [diff] [blame] | 13 | #ifndef _CORESIGHT_PRIV_H |
| 14 | #define _CORESIGHT_PRIV_H |
Pratik Patel | 7831c08 | 2011-06-08 21:44:37 -0700 | [diff] [blame] | 15 | |
Pratik Patel | cf41862 | 2011-09-22 11:15:11 -0700 | [diff] [blame] | 16 | #include <linux/bitops.h> |
| 17 | |
Pratik Patel | 17f3b82 | 2011-11-21 12:41:47 -0800 | [diff] [blame] | 18 | /* Coresight management registers (0xF00-0xFCC) |
| 19 | * 0xFA0 - 0xFA4: Management registers in PFTv1.0 |
| 20 | * Trace registers in PFTv1.1 |
| 21 | */ |
Pratik Patel | 6fb3834 | 2012-06-03 14:51:38 -0700 | [diff] [blame] | 22 | #define CORESIGHT_ITCTRL (0xF00) |
| 23 | #define CORESIGHT_CLAIMSET (0xFA0) |
| 24 | #define CORESIGHT_CLAIMCLR (0xFA4) |
| 25 | #define CORESIGHT_LAR (0xFB0) |
| 26 | #define CORESIGHT_LSR (0xFB4) |
| 27 | #define CORESIGHT_AUTHSTATUS (0xFB8) |
| 28 | #define CORESIGHT_DEVID (0xFC8) |
| 29 | #define CORESIGHT_DEVTYPE (0xFCC) |
Pratik Patel | 7831c08 | 2011-06-08 21:44:37 -0700 | [diff] [blame] | 30 | |
Pratik Patel | 6fb3834 | 2012-06-03 14:51:38 -0700 | [diff] [blame] | 31 | #define CORESIGHT_UNLOCK (0xC5ACCE55) |
Pratik Patel | 7831c08 | 2011-06-08 21:44:37 -0700 | [diff] [blame] | 32 | |
Pratik Patel | 17f3b82 | 2011-11-21 12:41:47 -0800 | [diff] [blame] | 33 | #define TIMEOUT_US (100) |
Pratik Patel | 7831c08 | 2011-06-08 21:44:37 -0700 | [diff] [blame] | 34 | |
| 35 | #define BM(lsb, msb) ((BIT(msb) - BIT(lsb)) + BIT(msb)) |
| 36 | #define BMVAL(val, lsb, msb) ((val & BM(lsb, msb)) >> lsb) |
| 37 | #define BVAL(val, n) ((val & BIT(n)) >> n) |
| 38 | |
Pratik Patel | b8bb403 | 2012-07-22 23:09:11 -0700 | [diff] [blame] | 39 | #ifdef CONFIG_MSM_QDSS |
| 40 | extern void msm_qdss_csr_enable_bam_to_usb(void); |
| 41 | extern void msm_qdss_csr_disable_bam_to_usb(void); |
Pratik Patel | e6e41da | 2012-09-12 12:50:29 -0700 | [diff] [blame] | 42 | extern unsigned int etm_readl_cp14(uint32_t off); |
| 43 | extern void etm_writel_cp14(uint32_t val, uint32_t off); |
Pratik Patel | b8bb403 | 2012-07-22 23:09:11 -0700 | [diff] [blame] | 44 | #else |
| 45 | static inline void msm_qdss_csr_enable_bam_to_usb(void) {} |
| 46 | static inline void msm_qdss_csr_disable_bam_to_usb(void) {} |
Pratik Patel | e6e41da | 2012-09-12 12:50:29 -0700 | [diff] [blame] | 47 | static inline unsigned int etm_readl_cp14(uint32_t off) { return 0; } |
| 48 | static inline void etm_writel_cp14(uint32_t val, uint32_t off) {} |
Pratik Patel | b8bb403 | 2012-07-22 23:09:11 -0700 | [diff] [blame] | 49 | #endif |
| 50 | |
Pratik Patel | 7831c08 | 2011-06-08 21:44:37 -0700 | [diff] [blame] | 51 | #endif |