root/drivers/hwtracing/coresight/coresight-etm-cp14.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. etm_readl_cp14
  2. etm_writel_cp14

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * Copyright (c) 2012, The Linux Foundation. All rights reserved.
   4  */
   5 
   6 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
   7 
   8 #include <linux/kernel.h>
   9 #include <linux/types.h>
  10 #include <linux/bug.h>
  11 #include <asm/hardware/cp14.h>
  12 
  13 #include "coresight-etm.h"
  14 
  15 int etm_readl_cp14(u32 reg, unsigned int *val)
  16 {
  17         switch (reg) {
  18         case ETMCR:
  19                 *val = etm_read(ETMCR);
  20                 return 0;
  21         case ETMCCR:
  22                 *val = etm_read(ETMCCR);
  23                 return 0;
  24         case ETMTRIGGER:
  25                 *val = etm_read(ETMTRIGGER);
  26                 return 0;
  27         case ETMSR:
  28                 *val = etm_read(ETMSR);
  29                 return 0;
  30         case ETMSCR:
  31                 *val = etm_read(ETMSCR);
  32                 return 0;
  33         case ETMTSSCR:
  34                 *val = etm_read(ETMTSSCR);
  35                 return 0;
  36         case ETMTEEVR:
  37                 *val = etm_read(ETMTEEVR);
  38                 return 0;
  39         case ETMTECR1:
  40                 *val = etm_read(ETMTECR1);
  41                 return 0;
  42         case ETMFFLR:
  43                 *val = etm_read(ETMFFLR);
  44                 return 0;
  45         case ETMACVRn(0):
  46                 *val = etm_read(ETMACVR0);
  47                 return 0;
  48         case ETMACVRn(1):
  49                 *val = etm_read(ETMACVR1);
  50                 return 0;
  51         case ETMACVRn(2):
  52                 *val = etm_read(ETMACVR2);
  53                 return 0;
  54         case ETMACVRn(3):
  55                 *val = etm_read(ETMACVR3);
  56                 return 0;
  57         case ETMACVRn(4):
  58                 *val = etm_read(ETMACVR4);
  59                 return 0;
  60         case ETMACVRn(5):
  61                 *val = etm_read(ETMACVR5);
  62                 return 0;
  63         case ETMACVRn(6):
  64                 *val = etm_read(ETMACVR6);
  65                 return 0;
  66         case ETMACVRn(7):
  67                 *val = etm_read(ETMACVR7);
  68                 return 0;
  69         case ETMACVRn(8):
  70                 *val = etm_read(ETMACVR8);
  71                 return 0;
  72         case ETMACVRn(9):
  73                 *val = etm_read(ETMACVR9);
  74                 return 0;
  75         case ETMACVRn(10):
  76                 *val = etm_read(ETMACVR10);
  77                 return 0;
  78         case ETMACVRn(11):
  79                 *val = etm_read(ETMACVR11);
  80                 return 0;
  81         case ETMACVRn(12):
  82                 *val = etm_read(ETMACVR12);
  83                 return 0;
  84         case ETMACVRn(13):
  85                 *val = etm_read(ETMACVR13);
  86                 return 0;
  87         case ETMACVRn(14):
  88                 *val = etm_read(ETMACVR14);
  89                 return 0;
  90         case ETMACVRn(15):
  91                 *val = etm_read(ETMACVR15);
  92                 return 0;
  93         case ETMACTRn(0):
  94                 *val = etm_read(ETMACTR0);
  95                 return 0;
  96         case ETMACTRn(1):
  97                 *val = etm_read(ETMACTR1);
  98                 return 0;
  99         case ETMACTRn(2):
 100                 *val = etm_read(ETMACTR2);
 101                 return 0;
 102         case ETMACTRn(3):
 103                 *val = etm_read(ETMACTR3);
 104                 return 0;
 105         case ETMACTRn(4):
 106                 *val = etm_read(ETMACTR4);
 107                 return 0;
 108         case ETMACTRn(5):
 109                 *val = etm_read(ETMACTR5);
 110                 return 0;
 111         case ETMACTRn(6):
 112                 *val = etm_read(ETMACTR6);
 113                 return 0;
 114         case ETMACTRn(7):
 115                 *val = etm_read(ETMACTR7);
 116                 return 0;
 117         case ETMACTRn(8):
 118                 *val = etm_read(ETMACTR8);
 119                 return 0;
 120         case ETMACTRn(9):
 121                 *val = etm_read(ETMACTR9);
 122                 return 0;
 123         case ETMACTRn(10):
 124                 *val = etm_read(ETMACTR10);
 125                 return 0;
 126         case ETMACTRn(11):
 127                 *val = etm_read(ETMACTR11);
 128                 return 0;
 129         case ETMACTRn(12):
 130                 *val = etm_read(ETMACTR12);
 131                 return 0;
 132         case ETMACTRn(13):
 133                 *val = etm_read(ETMACTR13);
 134                 return 0;
 135         case ETMACTRn(14):
 136                 *val = etm_read(ETMACTR14);
 137                 return 0;
 138         case ETMACTRn(15):
 139                 *val = etm_read(ETMACTR15);
 140                 return 0;
 141         case ETMCNTRLDVRn(0):
 142                 *val = etm_read(ETMCNTRLDVR0);
 143                 return 0;
 144         case ETMCNTRLDVRn(1):
 145                 *val = etm_read(ETMCNTRLDVR1);
 146                 return 0;
 147         case ETMCNTRLDVRn(2):
 148                 *val = etm_read(ETMCNTRLDVR2);
 149                 return 0;
 150         case ETMCNTRLDVRn(3):
 151                 *val = etm_read(ETMCNTRLDVR3);
 152                 return 0;
 153         case ETMCNTENRn(0):
 154                 *val = etm_read(ETMCNTENR0);
 155                 return 0;
 156         case ETMCNTENRn(1):
 157                 *val = etm_read(ETMCNTENR1);
 158                 return 0;
 159         case ETMCNTENRn(2):
 160                 *val = etm_read(ETMCNTENR2);
 161                 return 0;
 162         case ETMCNTENRn(3):
 163                 *val = etm_read(ETMCNTENR3);
 164                 return 0;
 165         case ETMCNTRLDEVRn(0):
 166                 *val = etm_read(ETMCNTRLDEVR0);
 167                 return 0;
 168         case ETMCNTRLDEVRn(1):
 169                 *val = etm_read(ETMCNTRLDEVR1);
 170                 return 0;
 171         case ETMCNTRLDEVRn(2):
 172                 *val = etm_read(ETMCNTRLDEVR2);
 173                 return 0;
 174         case ETMCNTRLDEVRn(3):
 175                 *val = etm_read(ETMCNTRLDEVR3);
 176                 return 0;
 177         case ETMCNTVRn(0):
 178                 *val = etm_read(ETMCNTVR0);
 179                 return 0;
 180         case ETMCNTVRn(1):
 181                 *val = etm_read(ETMCNTVR1);
 182                 return 0;
 183         case ETMCNTVRn(2):
 184                 *val = etm_read(ETMCNTVR2);
 185                 return 0;
 186         case ETMCNTVRn(3):
 187                 *val = etm_read(ETMCNTVR3);
 188                 return 0;
 189         case ETMSQ12EVR:
 190                 *val = etm_read(ETMSQ12EVR);
 191                 return 0;
 192         case ETMSQ21EVR:
 193                 *val = etm_read(ETMSQ21EVR);
 194                 return 0;
 195         case ETMSQ23EVR:
 196                 *val = etm_read(ETMSQ23EVR);
 197                 return 0;
 198         case ETMSQ31EVR:
 199                 *val = etm_read(ETMSQ31EVR);
 200                 return 0;
 201         case ETMSQ32EVR:
 202                 *val = etm_read(ETMSQ32EVR);
 203                 return 0;
 204         case ETMSQ13EVR:
 205                 *val = etm_read(ETMSQ13EVR);
 206                 return 0;
 207         case ETMSQR:
 208                 *val = etm_read(ETMSQR);
 209                 return 0;
 210         case ETMEXTOUTEVRn(0):
 211                 *val = etm_read(ETMEXTOUTEVR0);
 212                 return 0;
 213         case ETMEXTOUTEVRn(1):
 214                 *val = etm_read(ETMEXTOUTEVR1);
 215                 return 0;
 216         case ETMEXTOUTEVRn(2):
 217                 *val = etm_read(ETMEXTOUTEVR2);
 218                 return 0;
 219         case ETMEXTOUTEVRn(3):
 220                 *val = etm_read(ETMEXTOUTEVR3);
 221                 return 0;
 222         case ETMCIDCVRn(0):
 223                 *val = etm_read(ETMCIDCVR0);
 224                 return 0;
 225         case ETMCIDCVRn(1):
 226                 *val = etm_read(ETMCIDCVR1);
 227                 return 0;
 228         case ETMCIDCVRn(2):
 229                 *val = etm_read(ETMCIDCVR2);
 230                 return 0;
 231         case ETMCIDCMR:
 232                 *val = etm_read(ETMCIDCMR);
 233                 return 0;
 234         case ETMIMPSPEC0:
 235                 *val = etm_read(ETMIMPSPEC0);
 236                 return 0;
 237         case ETMIMPSPEC1:
 238                 *val = etm_read(ETMIMPSPEC1);
 239                 return 0;
 240         case ETMIMPSPEC2:
 241                 *val = etm_read(ETMIMPSPEC2);
 242                 return 0;
 243         case ETMIMPSPEC3:
 244                 *val = etm_read(ETMIMPSPEC3);
 245                 return 0;
 246         case ETMIMPSPEC4:
 247                 *val = etm_read(ETMIMPSPEC4);
 248                 return 0;
 249         case ETMIMPSPEC5:
 250                 *val = etm_read(ETMIMPSPEC5);
 251                 return 0;
 252         case ETMIMPSPEC6:
 253                 *val = etm_read(ETMIMPSPEC6);
 254                 return 0;
 255         case ETMIMPSPEC7:
 256                 *val = etm_read(ETMIMPSPEC7);
 257                 return 0;
 258         case ETMSYNCFR:
 259                 *val = etm_read(ETMSYNCFR);
 260                 return 0;
 261         case ETMIDR:
 262                 *val = etm_read(ETMIDR);
 263                 return 0;
 264         case ETMCCER:
 265                 *val = etm_read(ETMCCER);
 266                 return 0;
 267         case ETMEXTINSELR:
 268                 *val = etm_read(ETMEXTINSELR);
 269                 return 0;
 270         case ETMTESSEICR:
 271                 *val = etm_read(ETMTESSEICR);
 272                 return 0;
 273         case ETMEIBCR:
 274                 *val = etm_read(ETMEIBCR);
 275                 return 0;
 276         case ETMTSEVR:
 277                 *val = etm_read(ETMTSEVR);
 278                 return 0;
 279         case ETMAUXCR:
 280                 *val = etm_read(ETMAUXCR);
 281                 return 0;
 282         case ETMTRACEIDR:
 283                 *val = etm_read(ETMTRACEIDR);
 284                 return 0;
 285         case ETMVMIDCVR:
 286                 *val = etm_read(ETMVMIDCVR);
 287                 return 0;
 288         case ETMOSLSR:
 289                 *val = etm_read(ETMOSLSR);
 290                 return 0;
 291         case ETMOSSRR:
 292                 *val = etm_read(ETMOSSRR);
 293                 return 0;
 294         case ETMPDCR:
 295                 *val = etm_read(ETMPDCR);
 296                 return 0;
 297         case ETMPDSR:
 298                 *val = etm_read(ETMPDSR);
 299                 return 0;
 300         default:
 301                 *val = 0;
 302                 return -EINVAL;
 303         }
 304 }
 305 
 306 int etm_writel_cp14(u32 reg, u32 val)
 307 {
 308         switch (reg) {
 309         case ETMCR:
 310                 etm_write(val, ETMCR);
 311                 break;
 312         case ETMTRIGGER:
 313                 etm_write(val, ETMTRIGGER);
 314                 break;
 315         case ETMSR:
 316                 etm_write(val, ETMSR);
 317                 break;
 318         case ETMTSSCR:
 319                 etm_write(val, ETMTSSCR);
 320                 break;
 321         case ETMTEEVR:
 322                 etm_write(val, ETMTEEVR);
 323                 break;
 324         case ETMTECR1:
 325                 etm_write(val, ETMTECR1);
 326                 break;
 327         case ETMFFLR:
 328                 etm_write(val, ETMFFLR);
 329                 break;
 330         case ETMACVRn(0):
 331                 etm_write(val, ETMACVR0);
 332                 break;
 333         case ETMACVRn(1):
 334                 etm_write(val, ETMACVR1);
 335                 break;
 336         case ETMACVRn(2):
 337                 etm_write(val, ETMACVR2);
 338                 break;
 339         case ETMACVRn(3):
 340                 etm_write(val, ETMACVR3);
 341                 break;
 342         case ETMACVRn(4):
 343                 etm_write(val, ETMACVR4);
 344                 break;
 345         case ETMACVRn(5):
 346                 etm_write(val, ETMACVR5);
 347                 break;
 348         case ETMACVRn(6):
 349                 etm_write(val, ETMACVR6);
 350                 break;
 351         case ETMACVRn(7):
 352                 etm_write(val, ETMACVR7);
 353                 break;
 354         case ETMACVRn(8):
 355                 etm_write(val, ETMACVR8);
 356                 break;
 357         case ETMACVRn(9):
 358                 etm_write(val, ETMACVR9);
 359                 break;
 360         case ETMACVRn(10):
 361                 etm_write(val, ETMACVR10);
 362                 break;
 363         case ETMACVRn(11):
 364                 etm_write(val, ETMACVR11);
 365                 break;
 366         case ETMACVRn(12):
 367                 etm_write(val, ETMACVR12);
 368                 break;
 369         case ETMACVRn(13):
 370                 etm_write(val, ETMACVR13);
 371                 break;
 372         case ETMACVRn(14):
 373                 etm_write(val, ETMACVR14);
 374                 break;
 375         case ETMACVRn(15):
 376                 etm_write(val, ETMACVR15);
 377                 break;
 378         case ETMACTRn(0):
 379                 etm_write(val, ETMACTR0);
 380                 break;
 381         case ETMACTRn(1):
 382                 etm_write(val, ETMACTR1);
 383                 break;
 384         case ETMACTRn(2):
 385                 etm_write(val, ETMACTR2);
 386                 break;
 387         case ETMACTRn(3):
 388                 etm_write(val, ETMACTR3);
 389                 break;
 390         case ETMACTRn(4):
 391                 etm_write(val, ETMACTR4);
 392                 break;
 393         case ETMACTRn(5):
 394                 etm_write(val, ETMACTR5);
 395                 break;
 396         case ETMACTRn(6):
 397                 etm_write(val, ETMACTR6);
 398                 break;
 399         case ETMACTRn(7):
 400                 etm_write(val, ETMACTR7);
 401                 break;
 402         case ETMACTRn(8):
 403                 etm_write(val, ETMACTR8);
 404                 break;
 405         case ETMACTRn(9):
 406                 etm_write(val, ETMACTR9);
 407                 break;
 408         case ETMACTRn(10):
 409                 etm_write(val, ETMACTR10);
 410                 break;
 411         case ETMACTRn(11):
 412                 etm_write(val, ETMACTR11);
 413                 break;
 414         case ETMACTRn(12):
 415                 etm_write(val, ETMACTR12);
 416                 break;
 417         case ETMACTRn(13):
 418                 etm_write(val, ETMACTR13);
 419                 break;
 420         case ETMACTRn(14):
 421                 etm_write(val, ETMACTR14);
 422                 break;
 423         case ETMACTRn(15):
 424                 etm_write(val, ETMACTR15);
 425                 break;
 426         case ETMCNTRLDVRn(0):
 427                 etm_write(val, ETMCNTRLDVR0);
 428                 break;
 429         case ETMCNTRLDVRn(1):
 430                 etm_write(val, ETMCNTRLDVR1);
 431                 break;
 432         case ETMCNTRLDVRn(2):
 433                 etm_write(val, ETMCNTRLDVR2);
 434                 break;
 435         case ETMCNTRLDVRn(3):
 436                 etm_write(val, ETMCNTRLDVR3);
 437                 break;
 438         case ETMCNTENRn(0):
 439                 etm_write(val, ETMCNTENR0);
 440                 break;
 441         case ETMCNTENRn(1):
 442                 etm_write(val, ETMCNTENR1);
 443                 break;
 444         case ETMCNTENRn(2):
 445                 etm_write(val, ETMCNTENR2);
 446                 break;
 447         case ETMCNTENRn(3):
 448                 etm_write(val, ETMCNTENR3);
 449                 break;
 450         case ETMCNTRLDEVRn(0):
 451                 etm_write(val, ETMCNTRLDEVR0);
 452                 break;
 453         case ETMCNTRLDEVRn(1):
 454                 etm_write(val, ETMCNTRLDEVR1);
 455                 break;
 456         case ETMCNTRLDEVRn(2):
 457                 etm_write(val, ETMCNTRLDEVR2);
 458                 break;
 459         case ETMCNTRLDEVRn(3):
 460                 etm_write(val, ETMCNTRLDEVR3);
 461                 break;
 462         case ETMCNTVRn(0):
 463                 etm_write(val, ETMCNTVR0);
 464                 break;
 465         case ETMCNTVRn(1):
 466                 etm_write(val, ETMCNTVR1);
 467                 break;
 468         case ETMCNTVRn(2):
 469                 etm_write(val, ETMCNTVR2);
 470                 break;
 471         case ETMCNTVRn(3):
 472                 etm_write(val, ETMCNTVR3);
 473                 break;
 474         case ETMSQ12EVR:
 475                 etm_write(val, ETMSQ12EVR);
 476                 break;
 477         case ETMSQ21EVR:
 478                 etm_write(val, ETMSQ21EVR);
 479                 break;
 480         case ETMSQ23EVR:
 481                 etm_write(val, ETMSQ23EVR);
 482                 break;
 483         case ETMSQ31EVR:
 484                 etm_write(val, ETMSQ31EVR);
 485                 break;
 486         case ETMSQ32EVR:
 487                 etm_write(val, ETMSQ32EVR);
 488                 break;
 489         case ETMSQ13EVR:
 490                 etm_write(val, ETMSQ13EVR);
 491                 break;
 492         case ETMSQR:
 493                 etm_write(val, ETMSQR);
 494                 break;
 495         case ETMEXTOUTEVRn(0):
 496                 etm_write(val, ETMEXTOUTEVR0);
 497                 break;
 498         case ETMEXTOUTEVRn(1):
 499                 etm_write(val, ETMEXTOUTEVR1);
 500                 break;
 501         case ETMEXTOUTEVRn(2):
 502                 etm_write(val, ETMEXTOUTEVR2);
 503                 break;
 504         case ETMEXTOUTEVRn(3):
 505                 etm_write(val, ETMEXTOUTEVR3);
 506                 break;
 507         case ETMCIDCVRn(0):
 508                 etm_write(val, ETMCIDCVR0);
 509                 break;
 510         case ETMCIDCVRn(1):
 511                 etm_write(val, ETMCIDCVR1);
 512                 break;
 513         case ETMCIDCVRn(2):
 514                 etm_write(val, ETMCIDCVR2);
 515                 break;
 516         case ETMCIDCMR:
 517                 etm_write(val, ETMCIDCMR);
 518                 break;
 519         case ETMIMPSPEC0:
 520                 etm_write(val, ETMIMPSPEC0);
 521                 break;
 522         case ETMIMPSPEC1:
 523                 etm_write(val, ETMIMPSPEC1);
 524                 break;
 525         case ETMIMPSPEC2:
 526                 etm_write(val, ETMIMPSPEC2);
 527                 break;
 528         case ETMIMPSPEC3:
 529                 etm_write(val, ETMIMPSPEC3);
 530                 break;
 531         case ETMIMPSPEC4:
 532                 etm_write(val, ETMIMPSPEC4);
 533                 break;
 534         case ETMIMPSPEC5:
 535                 etm_write(val, ETMIMPSPEC5);
 536                 break;
 537         case ETMIMPSPEC6:
 538                 etm_write(val, ETMIMPSPEC6);
 539                 break;
 540         case ETMIMPSPEC7:
 541                 etm_write(val, ETMIMPSPEC7);
 542                 break;
 543         case ETMSYNCFR:
 544                 etm_write(val, ETMSYNCFR);
 545                 break;
 546         case ETMEXTINSELR:
 547                 etm_write(val, ETMEXTINSELR);
 548                 break;
 549         case ETMTESSEICR:
 550                 etm_write(val, ETMTESSEICR);
 551                 break;
 552         case ETMEIBCR:
 553                 etm_write(val, ETMEIBCR);
 554                 break;
 555         case ETMTSEVR:
 556                 etm_write(val, ETMTSEVR);
 557                 break;
 558         case ETMAUXCR:
 559                 etm_write(val, ETMAUXCR);
 560                 break;
 561         case ETMTRACEIDR:
 562                 etm_write(val, ETMTRACEIDR);
 563                 break;
 564         case ETMVMIDCVR:
 565                 etm_write(val, ETMVMIDCVR);
 566                 break;
 567         case ETMOSLAR:
 568                 etm_write(val, ETMOSLAR);
 569                 break;
 570         case ETMOSSRR:
 571                 etm_write(val, ETMOSSRR);
 572                 break;
 573         case ETMPDCR:
 574                 etm_write(val, ETMPDCR);
 575                 break;
 576         case ETMPDSR:
 577                 etm_write(val, ETMPDSR);
 578                 break;
 579         default:
 580                 return -EINVAL;
 581         }
 582 
 583         return 0;
 584 }

/* [<][>][^][v][top][bottom][index][help] */