| /* |
| * Copyright (c) 2016 Samsung Electronics Co., Ltd. |
| * http://www.samsung.com |
| * |
| * EXYNOS IPs Traffic Monitor Driver for Samsung EXYNOS SoC |
| * By Hosung Kim (hosung0.kim@samsung.com) |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| */ |
| |
| #ifndef EXYNOS_ITMON__H |
| #define EXYNOS_ITMON__H |
| |
| struct itmon_notifier { |
| char *port; /* The block to which the master IP belongs */ |
| char *master; /* The master's name which problem occurred */ |
| char *dest; /* The destination which the master tried to access */ |
| bool read; /* Transaction Type */ |
| unsigned long target_addr; /* The physical address which the master tried to access */ |
| unsigned int errcode; /* The error code which the problem occurred */ |
| bool onoff; /* Target Block on/off */ |
| char *pd_name; /* Target Block power domain name */ |
| }; |
| #ifdef CONFIG_EXYNOS_ITMON |
| extern void itmon_notifier_chain_register(struct notifier_block *n); |
| extern void itmon_enable(bool enabled); |
| extern void itmon_set_errcnt(int cnt); |
| extern int cal_pd_status(unsigned int id); |
| #else |
| static inline void itmon_enable(bool enabled) {} |
| #define itmon_notifier_chain_register(x) do { } while (0) |
| #define itmon_set_errcnt(x) do { } while (0) |
| #define itmon_enable(x) do { } while (0) |
| #endif |
| |
| #endif |