clk.h (5145B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. 4 */ 5#undef TRACE_SYSTEM 6#define TRACE_SYSTEM clk 7 8#if !defined(_TRACE_CLK_H) || defined(TRACE_HEADER_MULTI_READ) 9#define _TRACE_CLK_H 10 11#include <linux/tracepoint.h> 12 13struct clk_core; 14 15DECLARE_EVENT_CLASS(clk, 16 17 TP_PROTO(struct clk_core *core), 18 19 TP_ARGS(core), 20 21 TP_STRUCT__entry( 22 __string( name, core->name ) 23 ), 24 25 TP_fast_assign( 26 __assign_str(name, core->name); 27 ), 28 29 TP_printk("%s", __get_str(name)) 30); 31 32DEFINE_EVENT(clk, clk_enable, 33 34 TP_PROTO(struct clk_core *core), 35 36 TP_ARGS(core) 37); 38 39DEFINE_EVENT(clk, clk_enable_complete, 40 41 TP_PROTO(struct clk_core *core), 42 43 TP_ARGS(core) 44); 45 46DEFINE_EVENT(clk, clk_disable, 47 48 TP_PROTO(struct clk_core *core), 49 50 TP_ARGS(core) 51); 52 53DEFINE_EVENT(clk, clk_disable_complete, 54 55 TP_PROTO(struct clk_core *core), 56 57 TP_ARGS(core) 58); 59 60DEFINE_EVENT(clk, clk_prepare, 61 62 TP_PROTO(struct clk_core *core), 63 64 TP_ARGS(core) 65); 66 67DEFINE_EVENT(clk, clk_prepare_complete, 68 69 TP_PROTO(struct clk_core *core), 70 71 TP_ARGS(core) 72); 73 74DEFINE_EVENT(clk, clk_unprepare, 75 76 TP_PROTO(struct clk_core *core), 77 78 TP_ARGS(core) 79); 80 81DEFINE_EVENT(clk, clk_unprepare_complete, 82 83 TP_PROTO(struct clk_core *core), 84 85 TP_ARGS(core) 86); 87 88DECLARE_EVENT_CLASS(clk_rate, 89 90 TP_PROTO(struct clk_core *core, unsigned long rate), 91 92 TP_ARGS(core, rate), 93 94 TP_STRUCT__entry( 95 __string( name, core->name ) 96 __field(unsigned long, rate ) 97 ), 98 99 TP_fast_assign( 100 __assign_str(name, core->name); 101 __entry->rate = rate; 102 ), 103 104 TP_printk("%s %lu", __get_str(name), (unsigned long)__entry->rate) 105); 106 107DEFINE_EVENT(clk_rate, clk_set_rate, 108 109 TP_PROTO(struct clk_core *core, unsigned long rate), 110 111 TP_ARGS(core, rate) 112); 113 114DEFINE_EVENT(clk_rate, clk_set_rate_complete, 115 116 TP_PROTO(struct clk_core *core, unsigned long rate), 117 118 TP_ARGS(core, rate) 119); 120 121DEFINE_EVENT(clk_rate, clk_set_min_rate, 122 123 TP_PROTO(struct clk_core *core, unsigned long rate), 124 125 TP_ARGS(core, rate) 126); 127 128DEFINE_EVENT(clk_rate, clk_set_max_rate, 129 130 TP_PROTO(struct clk_core *core, unsigned long rate), 131 132 TP_ARGS(core, rate) 133); 134 135DECLARE_EVENT_CLASS(clk_rate_range, 136 137 TP_PROTO(struct clk_core *core, unsigned long min, unsigned long max), 138 139 TP_ARGS(core, min, max), 140 141 TP_STRUCT__entry( 142 __string( name, core->name ) 143 __field(unsigned long, min ) 144 __field(unsigned long, max ) 145 ), 146 147 TP_fast_assign( 148 __assign_str(name, core->name); 149 __entry->min = min; 150 __entry->max = max; 151 ), 152 153 TP_printk("%s min %lu max %lu", __get_str(name), 154 (unsigned long)__entry->min, 155 (unsigned long)__entry->max) 156); 157 158DEFINE_EVENT(clk_rate_range, clk_set_rate_range, 159 160 TP_PROTO(struct clk_core *core, unsigned long min, unsigned long max), 161 162 TP_ARGS(core, min, max) 163); 164 165DECLARE_EVENT_CLASS(clk_parent, 166 167 TP_PROTO(struct clk_core *core, struct clk_core *parent), 168 169 TP_ARGS(core, parent), 170 171 TP_STRUCT__entry( 172 __string( name, core->name ) 173 __string( pname, parent ? parent->name : "none" ) 174 ), 175 176 TP_fast_assign( 177 __assign_str(name, core->name); 178 __assign_str(pname, parent ? parent->name : "none"); 179 ), 180 181 TP_printk("%s %s", __get_str(name), __get_str(pname)) 182); 183 184DEFINE_EVENT(clk_parent, clk_set_parent, 185 186 TP_PROTO(struct clk_core *core, struct clk_core *parent), 187 188 TP_ARGS(core, parent) 189); 190 191DEFINE_EVENT(clk_parent, clk_set_parent_complete, 192 193 TP_PROTO(struct clk_core *core, struct clk_core *parent), 194 195 TP_ARGS(core, parent) 196); 197 198DECLARE_EVENT_CLASS(clk_phase, 199 200 TP_PROTO(struct clk_core *core, int phase), 201 202 TP_ARGS(core, phase), 203 204 TP_STRUCT__entry( 205 __string( name, core->name ) 206 __field( int, phase ) 207 ), 208 209 TP_fast_assign( 210 __assign_str(name, core->name); 211 __entry->phase = phase; 212 ), 213 214 TP_printk("%s %d", __get_str(name), (int)__entry->phase) 215); 216 217DEFINE_EVENT(clk_phase, clk_set_phase, 218 219 TP_PROTO(struct clk_core *core, int phase), 220 221 TP_ARGS(core, phase) 222); 223 224DEFINE_EVENT(clk_phase, clk_set_phase_complete, 225 226 TP_PROTO(struct clk_core *core, int phase), 227 228 TP_ARGS(core, phase) 229); 230 231DECLARE_EVENT_CLASS(clk_duty_cycle, 232 233 TP_PROTO(struct clk_core *core, struct clk_duty *duty), 234 235 TP_ARGS(core, duty), 236 237 TP_STRUCT__entry( 238 __string( name, core->name ) 239 __field( unsigned int, num ) 240 __field( unsigned int, den ) 241 ), 242 243 TP_fast_assign( 244 __assign_str(name, core->name); 245 __entry->num = duty->num; 246 __entry->den = duty->den; 247 ), 248 249 TP_printk("%s %u/%u", __get_str(name), (unsigned int)__entry->num, 250 (unsigned int)__entry->den) 251); 252 253DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle, 254 255 TP_PROTO(struct clk_core *core, struct clk_duty *duty), 256 257 TP_ARGS(core, duty) 258); 259 260DEFINE_EVENT(clk_duty_cycle, clk_set_duty_cycle_complete, 261 262 TP_PROTO(struct clk_core *core, struct clk_duty *duty), 263 264 TP_ARGS(core, duty) 265); 266 267#endif /* _TRACE_CLK_H */ 268 269/* This part must be outside protection */ 270#include <trace/define_trace.h>