18e2e5e8bSYann Gautier /* 2*258bef91SYann Gautier * Copyright (c) 2017-2021, STMicroelectronics - All Rights Reserved 38e2e5e8bSYann Gautier * 48e2e5e8bSYann Gautier * SPDX-License-Identifier: BSD-3-Clause 58e2e5e8bSYann Gautier */ 68e2e5e8bSYann Gautier 78e2e5e8bSYann Gautier #ifndef STM32_SDMMC2_H 88e2e5e8bSYann Gautier #define STM32_SDMMC2_H 98e2e5e8bSYann Gautier 108e2e5e8bSYann Gautier #include <stdbool.h> 118e2e5e8bSYann Gautier 1209d40e0eSAntonio Nino Diaz #include <drivers/mmc.h> 13*258bef91SYann Gautier #include <drivers/st/regulator.h> 1409d40e0eSAntonio Nino Diaz 158e2e5e8bSYann Gautier struct stm32_sdmmc2_params { 168e2e5e8bSYann Gautier uintptr_t reg_base; 178e2e5e8bSYann Gautier unsigned int clk_rate; 188e2e5e8bSYann Gautier unsigned int bus_width; 198e2e5e8bSYann Gautier unsigned int flags; 208e2e5e8bSYann Gautier struct mmc_device_info *device_info; 218e2e5e8bSYann Gautier unsigned int pin_ckin; 228e2e5e8bSYann Gautier unsigned int negedge; 238e2e5e8bSYann Gautier unsigned int dirpol; 248e2e5e8bSYann Gautier unsigned int clock_id; 258e2e5e8bSYann Gautier unsigned int reset_id; 262c2c9f1eSYann Gautier unsigned int max_freq; 278e2e5e8bSYann Gautier bool use_dma; 28*258bef91SYann Gautier struct rdev *vmmc_regu; 298e2e5e8bSYann Gautier }; 308e2e5e8bSYann Gautier 318e2e5e8bSYann Gautier unsigned long long stm32_sdmmc2_mmc_get_device_size(void); 328e2e5e8bSYann Gautier int stm32_sdmmc2_mmc_init(struct stm32_sdmmc2_params *params); 338e2e5e8bSYann Gautier bool plat_sdmmc2_use_dma(unsigned int instance, unsigned int memory); 348e2e5e8bSYann Gautier 358e2e5e8bSYann Gautier #endif /* STM32_SDMMC2_H */ 36