1 /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ 2 #ifndef UAPI_UFS_H_ 3 #define UAPI_UFS_H_ 4 5 #define MAX_QUERY_IDN 0x20 6 7 /* Flag idn for Query Requests*/ 8 enum flag_idn { 9 QUERY_FLAG_IDN_FDEVICEINIT = 0x01, 10 QUERY_FLAG_IDN_PERMANENT_WPE = 0x02, 11 QUERY_FLAG_IDN_PWR_ON_WPE = 0x03, 12 QUERY_FLAG_IDN_BKOPS_EN = 0x04, 13 QUERY_FLAG_IDN_LIFE_SPAN_MODE_ENABLE = 0x05, 14 QUERY_FLAG_IDN_PURGE_ENABLE = 0x06, 15 QUERY_FLAG_IDN_RESERVED2 = 0x07, 16 QUERY_FLAG_IDN_FPHYRESOURCEREMOVAL = 0x08, 17 QUERY_FLAG_IDN_BUSY_RTC = 0x09, 18 QUERY_FLAG_IDN_RESERVED3 = 0x0A, 19 QUERY_FLAG_IDN_PERMANENTLY_DISABLE_FW_UPDATE = 0x0B, 20 /* use one reserved bit */ 21 QUERY_FLAG_IDN_MANUAL_GC_CONT = 0x0E, 22 QUERY_FLAG_IDN_WB_EN = 0x0E, 23 QUERY_FLAG_IDN_WB_BUFF_FLUSH_EN = 0x0F, 24 QUERY_FLAG_IDN_WB_BUFF_FLUSH_DURING_HIBERN8 = 0x10, 25 }; 26 27 /* Attribute idn for Query requests */ 28 enum attr_idn { 29 QUERY_ATTR_IDN_BOOT_LU_EN = 0x00, 30 QUERY_ATTR_IDN_RESERVED = 0x01, 31 QUERY_ATTR_IDN_POWER_MODE = 0x02, 32 QUERY_ATTR_IDN_ACTIVE_ICC_LVL = 0x03, 33 QUERY_ATTR_IDN_OOO_DATA_EN = 0x04, 34 QUERY_ATTR_IDN_BKOPS_STATUS = 0x05, 35 QUERY_ATTR_IDN_PURGE_STATUS = 0x06, 36 QUERY_ATTR_IDN_MAX_DATA_IN = 0x07, 37 QUERY_ATTR_IDN_MAX_DATA_OUT = 0x08, 38 QUERY_ATTR_IDN_DYN_CAP_NEEDED = 0x09, 39 QUERY_ATTR_IDN_REF_CLK_FREQ = 0x0A, 40 QUERY_ATTR_IDN_CONF_DESC_LOCK = 0x0B, 41 QUERY_ATTR_IDN_MAX_NUM_OF_RTT = 0x0C, 42 QUERY_ATTR_IDN_EE_CONTROL = 0x0D, 43 QUERY_ATTR_IDN_EE_STATUS = 0x0E, 44 QUERY_ATTR_IDN_SECONDS_PASSED = 0x0F, 45 QUERY_ATTR_IDN_CNTX_CONF = 0x10, 46 QUERY_ATTR_IDN_CORR_PRG_BLK_NUM = 0x11, 47 QUERY_ATTR_IDN_MANUAL_GC_CONT = 0x12, 48 QUERY_ATTR_IDN_MANUAL_GC_STATUS_1 = 0x13, 49 QUERY_ATTR_IDN_FFU_STATUS = 0x14, 50 QUERY_ATTR_IDN_PSA_STATE = 0x15, 51 QUERY_ATTR_IDN_PSA_DATA_SIZE = 0x16, 52 QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME = 0x17, 53 /* use one reserved bit */ 54 QUERY_ATTR_IDN_MANUAL_GC_STATUS = 0x17, 55 QUERY_ATTR_IDN_WB_FLUSH_STATUS = 0x1C, 56 QUERY_ATTR_IDN_AVAIL_WB_BUFF_SIZE = 0x1D, 57 QUERY_ATTR_IDN_WB_BUFF_LIFE_TIME_EST = 0x1E, 58 QUERY_ATTR_IDN_CURR_WB_BUFF_SIZE = 0x1F, 59 }; 60 61 #define QUERY_ATTR_IDN_BOOT_LU_EN_MAX 0x02 62 #define QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME \ 63 QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME 64 65 /* Descriptor idn for Query requests */ 66 enum desc_idn { 67 QUERY_DESC_IDN_DEVICE = 0x0, 68 QUERY_DESC_IDN_CONFIGURATION = 0x1, 69 QUERY_DESC_IDN_UNIT = 0x2, 70 QUERY_DESC_IDN_RFU_0 = 0x3, 71 QUERY_DESC_IDN_INTERCONNECT = 0x4, 72 QUERY_DESC_IDN_STRING = 0x5, 73 QUERY_DESC_IDN_RFU_1 = 0x6, 74 QUERY_DESC_IDN_GEOMETRY = 0x7, 75 QUERY_DESC_IDN_POWER = 0x8, 76 QUERY_DESC_IDN_HEALTH = 0x9, 77 QUERY_DESC_IDN_MAX, 78 }; 79 80 /* UTP QUERY Transaction Specific Fields OpCode */ 81 enum query_opcode { 82 UPIU_QUERY_OPCODE_NOP = 0x0, 83 UPIU_QUERY_OPCODE_READ_DESC = 0x1, 84 UPIU_QUERY_OPCODE_WRITE_DESC = 0x2, 85 UPIU_QUERY_OPCODE_READ_ATTR = 0x3, 86 UPIU_QUERY_OPCODE_WRITE_ATTR = 0x4, 87 UPIU_QUERY_OPCODE_READ_FLAG = 0x5, 88 UPIU_QUERY_OPCODE_SET_FLAG = 0x6, 89 UPIU_QUERY_OPCODE_CLEAR_FLAG = 0x7, 90 UPIU_QUERY_OPCODE_TOGGLE_FLAG = 0x8, 91 UPIU_QUERY_OPCODE_MAX, 92 }; 93 #endif /* UAPI_UFS_H_ */ 94