1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /** 3 * Copyright (C) ST-Ericsson SA 2010 4 * Author: Shujuan Chen <shujuan.chen@stericsson.com> for ST-Ericsson. 5 * Author: Jonas Linde <jonas.linde@stericsson.com> for ST-Ericsson. 6 * Author: Joakim Bech <joakim.xx.bech@stericsson.com> for ST-Ericsson. 7 * Author: Berne Hebark <berne.herbark@stericsson.com> for ST-Ericsson. 8 * Author: Niklas Hernaeus <niklas.hernaeus@stericsson.com> for ST-Ericsson. 9 */ 10 11 #ifndef __CRYP_IRQP_H_ 12 #define __CRYP_IRQP_H_ 13 14 #include "cryp_irq.h" 15 16 /** 17 * 18 * CRYP Registers - Offset mapping 19 * +-----------------+ 20 * 00h | CRYP_CR | Configuration register 21 * +-----------------+ 22 * 04h | CRYP_SR | Status register 23 * +-----------------+ 24 * 08h | CRYP_DIN | Data In register 25 * +-----------------+ 26 * 0ch | CRYP_DOUT | Data out register 27 * +-----------------+ 28 * 10h | CRYP_DMACR | DMA control register 29 * +-----------------+ 30 * 14h | CRYP_IMSC | IMSC 31 * +-----------------+ 32 * 18h | CRYP_RIS | Raw interrupt status 33 * +-----------------+ 34 * 1ch | CRYP_MIS | Masked interrupt status. 35 * +-----------------+ 36 * Key registers 37 * IVR registers 38 * Peripheral 39 * Cell IDs 40 * 41 * Refer data structure for other register map 42 */ 43 44 /** 45 * struct cryp_register 46 * @cr - Configuration register 47 * @status - Status register 48 * @din - Data input register 49 * @din_size - Data input size register 50 * @dout - Data output register 51 * @dout_size - Data output size register 52 * @dmacr - Dma control register 53 * @imsc - Interrupt mask set/clear register 54 * @ris - Raw interrupt status 55 * @mis - Masked interrupt statu register 56 * @key_1_l - Key register 1 L 57 * @key_1_r - Key register 1 R 58 * @key_2_l - Key register 2 L 59 * @key_2_r - Key register 2 R 60 * @key_3_l - Key register 3 L 61 * @key_3_r - Key register 3 R 62 * @key_4_l - Key register 4 L 63 * @key_4_r - Key register 4 R 64 * @init_vect_0_l - init vector 0 L 65 * @init_vect_0_r - init vector 0 R 66 * @init_vect_1_l - init vector 1 L 67 * @init_vect_1_r - init vector 1 R 68 * @cryp_unused1 - unused registers 69 * @itcr - Integration test control register 70 * @itip - Integration test input register 71 * @itop - Integration test output register 72 * @cryp_unused2 - unused registers 73 * @periphId0 - FE0 CRYP Peripheral Identication Register 74 * @periphId1 - FE4 75 * @periphId2 - FE8 76 * @periphId3 - FEC 77 * @pcellId0 - FF0 CRYP PCell Identication Register 78 * @pcellId1 - FF4 79 * @pcellId2 - FF8 80 * @pcellId3 - FFC 81 */ 82 struct cryp_register { 83 u32 cr; /* Configuration register */ 84 u32 sr; /* Status register */ 85 u32 din; /* Data input register */ 86 u32 din_size; /* Data input size register */ 87 u32 dout; /* Data output register */ 88 u32 dout_size; /* Data output size register */ 89 u32 dmacr; /* Dma control register */ 90 u32 imsc; /* Interrupt mask set/clear register */ 91 u32 ris; /* Raw interrupt status */ 92 u32 mis; /* Masked interrupt statu register */ 93 94 u32 key_1_l; /*Key register 1 L */ 95 u32 key_1_r; /*Key register 1 R */ 96 u32 key_2_l; /*Key register 2 L */ 97 u32 key_2_r; /*Key register 2 R */ 98 u32 key_3_l; /*Key register 3 L */ 99 u32 key_3_r; /*Key register 3 R */ 100 u32 key_4_l; /*Key register 4 L */ 101 u32 key_4_r; /*Key register 4 R */ 102 103 u32 init_vect_0_l; /*init vector 0 L */ 104 u32 init_vect_0_r; /*init vector 0 R */ 105 u32 init_vect_1_l; /*init vector 1 L */ 106 u32 init_vect_1_r; /*init vector 1 R */ 107 108 u32 cryp_unused1[(0x80 - 0x58) / sizeof(u32)]; /* unused registers */ 109 u32 itcr; /*Integration test control register */ 110 u32 itip; /*Integration test input register */ 111 u32 itop; /*Integration test output register */ 112 u32 cryp_unused2[(0xFE0 - 0x8C) / sizeof(u32)]; /* unused registers */ 113 114 u32 periphId0; /* FE0 CRYP Peripheral Identication Register */ 115 u32 periphId1; /* FE4 */ 116 u32 periphId2; /* FE8 */ 117 u32 periphId3; /* FEC */ 118 119 u32 pcellId0; /* FF0 CRYP PCell Identication Register */ 120 u32 pcellId1; /* FF4 */ 121 u32 pcellId2; /* FF8 */ 122 u32 pcellId3; /* FFC */ 123 }; 124 125 #endif