1*3c54570aSAbhi Singh /* 2*3c54570aSAbhi Singh * Copyright (c) 2025, Arm Limited. All rights reserved. 3*3c54570aSAbhi Singh * 4*3c54570aSAbhi Singh * SPDX-License-Identifier: BSD-3-Clause 5*3c54570aSAbhi Singh */ 6*3c54570aSAbhi Singh 7*3c54570aSAbhi Singh #ifndef GPIO_SPI_H 8*3c54570aSAbhi Singh #define GPIO_SPI_H 9*3c54570aSAbhi Singh 10*3c54570aSAbhi Singh #include <stdint.h> 11*3c54570aSAbhi Singh 12*3c54570aSAbhi Singh struct gpio_spi_data { 13*3c54570aSAbhi Singh uint8_t cs_gpio, sclk_gpio, mosi_gpio, miso_gpio, reset_gpio; 14*3c54570aSAbhi Singh uint32_t spi_delay_us; 15*3c54570aSAbhi Singh unsigned int spi_mode; 16*3c54570aSAbhi Singh }; 17*3c54570aSAbhi Singh 18*3c54570aSAbhi Singh struct spi_ops { 19*3c54570aSAbhi Singh void (*get_access)(void); 20*3c54570aSAbhi Singh void (*start)(void); 21*3c54570aSAbhi Singh void (*stop)(void); 22*3c54570aSAbhi Singh int (*xfer)(unsigned int bitlen, const void *dout, void *din); 23*3c54570aSAbhi Singh }; 24*3c54570aSAbhi Singh 25*3c54570aSAbhi Singh struct spi_plat { 26*3c54570aSAbhi Singh struct gpio_spi_data gpio_data; 27*3c54570aSAbhi Singh const struct spi_ops *ops; 28*3c54570aSAbhi Singh }; 29*3c54570aSAbhi Singh 30*3c54570aSAbhi Singh struct spi_plat *gpio_spi_init(struct gpio_spi_data *gpio_spi_data); 31*3c54570aSAbhi Singh 32*3c54570aSAbhi Singh #endif /* GPIO_SPI_H */ 33