xref: /rk3399_ARM-atf/include/drivers/st/stm32_sdmmc2.h (revision 93b153b5bf3f76d482257a52b7a082b8c42f35d0)
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