/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py *** *** Any manual change here will be lost the next time this script will *** be run. You've been warned! *** **************************************************************************** ****************************************************************************/ #ifndef SD_MISC_H #define SD_MISC_H struct msdc_ioctl { int opcode; int host_num; int iswrite; int trans_type; unsigned int total_size; unsigned int address; unsigned int *buffer; int cmd_pu_driving; int cmd_pd_driving; int dat_pu_driving; int dat_pd_driving; int clk_pu_driving; int clk_pd_driving; int ds_pu_driving; int ds_pd_driving; int rst_pu_driving; int rst_pd_driving; int clock_freq; int partition; int hopping_bit; int hopping_time; int result; int sd30_mode; int sd30_max_current; int sd30_drive; int sd30_power_control; }; #define MSDC_DRIVING_SETTING (0) #define MSDC_CLOCK_FREQUENCY (1) #define MSDC_SINGLE_READ_WRITE (2) #define MSDC_MULTIPLE_READ_WRITE (3) #define MSDC_GET_CID (4) #define MSDC_GET_CSD (5) #define MSDC_GET_EXCSD (6) #define MSDC_ERASE_PARTITION (7) #define MSDC_HOPPING_SETTING (8) #define MSDC_REINIT_SDCARD _IOW('r', 9, int) #define MSDC_SD30_MODE_SWITCH (10) #define MSDC_GET_BOOTPART (11) #define MSDC_SET_BOOTPART (12) #define MSDC_GET_PARTSIZE (13) #define MSDC_CD_PIN_EN_SDCARD _IOW('r', 14, int) #define MSDC_SD_POWER_OFF (15) #define MSDC_SD_POWER_ON (16) #define MSDC_ERASE_SELECTED_AREA (0x20) #define MSDC_CARD_DUNM_FUNC (0xff) enum PARTITON_ACCESS_T { USER_PARTITION = 0, BOOT_PARTITION_1, BOOT_PARTITION_2, RPMB_PARTITION, GP_PARTITION_1, GP_PARTITION_2, GP_PARTITION_3, GP_PARTITION_4, }; enum SD3_MODE { SDHC_HIGHSPEED = 0, /* 0 Host supports HS mode */ UHS_SDR12, /* 1 Host supports UHS SDR12 mode */ UHS_SDR25, /* 2 Host supports UHS SDR25 mode */ UHS_SDR50, /* 3 Host supports UHS SDR50 mode */ UHS_SDR104, /* 4 Host supports UHS SDR104 mode */ UHS_DDR50, /* 5 Host supports UHS DDR50 mode */ EMMC_HS400, /* 6 Host supports EMMC HS400 mode */ CAPS_SPEED_NULL, }; enum SD3_DRIVE { DRIVER_TYPE_A = 0, /* 0 Host supports Driver Type A */ DRIVER_TYPE_B, /* 1 Host supports Driver Type B */ DRIVER_TYPE_C, /* 2 Host supports Driver Type C */ DRIVER_TYPE_D, /* 3 Host supports Driver Type D */ CAPS_DRIVE_NULL }; enum SD3_MAX_CURRENT { MAX_CURRENT_200 = 0,/* 0 Host max current limit is 200mA */ MAX_CURRENT_400, /* 1 Host max current limit is 400mA */ MAX_CURRENT_600, /* 2 Host max current limit is 600mA */ MAX_CURRENT_800, /* 3 Host max current limit is 800mA */ }; enum SD3_POWER_CONTROL { SDXC_NO_POWER_CONTROL = 0, /* Host does not supports >150mA current */ SDXC_POWER_CONTROL, /* Host supports >150mA current */ }; enum DUMP_STORAGE_TYPE { DUMP_INTO_BOOT_CARD_IPANIC = 0, DUMP_INTO_BOOT_CARD_KDUMP = 1, DUMP_INTO_EXTERN_CARD = 2, }; enum STORAGE_TPYE { EMMC_CARD_BOOT = 0, SD_CARD_BOOT, EMMC_CARD, SD_CARD, }; #define EXT_CSD_BOOT_SIZE_MULT (226) /* R */ #define EXT_CSD_HC_ERASE_GRP_SIZE (224) /* RO */ #define EXT_CSD_HC_WP_GPR_SIZE (221) /* RO */ #define EXT_CSD_RPMB_SIZE_MULT (168) /* R */ #define EXT_CSD_GP1_SIZE_MULT (143) /* R/W 3 bytes */ #define EXT_CSD_GP2_SIZE_MULT (146) /* R/W 3 bytes */ #define EXT_CSD_GP3_SIZE_MULT (149) /* R/W 3 bytes */ #define EXT_CSD_GP4_SIZE_MULT (152) /* R/W 3 bytes */ #define EXT_CSD_PART_CFG (179) /* R/W/E & R/W/E_P */ #define EXT_CSD_CACHE_FLUSH (32) #define EXT_CSD_CACHE_CTRL (33) #define CAPACITY_2G (2 * 1024 * 1024 * 1024ULL) enum BOOT_PARTITION_EN { EMMC_BOOT_NO_EN = 0, EMMC_BOOT1_EN, EMMC_BOOT2_EN, EMMC_BOOT_USER = 7, EMMC_BOOT_END }; enum Region { EMMC_PART_UNKNOWN = 0, EMMC_PART_BOOT1, EMMC_PART_BOOT2, EMMC_PART_RPMB, EMMC_PART_GP1, EMMC_PART_GP2, EMMC_PART_GP3, EMMC_PART_GP4, EMMC_PART_USER, EMMC_PART_END }; enum GET_STORAGE_INFO { CARD_INFO = 0, DISK_INFO, EMMC_USER_CAPACITY, EMMC_CAPACITY, EMMC_RESERVE, }; struct storage_info { struct mmc_card *card; struct gendisk *disk; unsigned long long emmc_user_capacity; unsigned long long emmc_capacity; int emmc_reserve; }; #endif