53 .miso = { .port = 3, .bank =
GPIO_A, .idx = 4 },
54 .mosi = { .port = 3, .bank =
GPIO_A, .idx = 5 },
55 .clk = { .port = 3, .bank =
GPIO_A, .idx = 6 },
56 .cs = { .port = 3, .bank =
GPIO_A, .idx = 7 },
60 .miso = { .port = 1, .bank =
GPIO_A, .idx = 7 },
61 .mosi = { .port = 1, .bank =
GPIO_B, .idx = 0 },
62 .clk = { .port = 1, .bank =
GPIO_B, .idx = 1 },
63 .cs = { .port = 1, .bank =
GPIO_B, .idx = 2 },
67 .miso = { .port = 2, .bank =
GPIO_B, .idx = 1 },
68 .mosi = { .port = 2, .bank =
GPIO_B, .idx = 2 },
69 .clk = { .port = 2, .bank =
GPIO_B, .idx = 3 },
70 .cs = { .port = 2, .bank =
GPIO_B, .idx = 4 },
74 .miso = { .port = 1, .bank =
GPIO_B, .idx = 7 },
75 .mosi = { .port = 1, .bank =
GPIO_C, .idx = 0 },
76 .clk = { .port = 1, .bank =
GPIO_C, .idx = 1 },
77 .cs = { .port = 1, .bank =
GPIO_C, .idx = 2 },
81 .miso = { .port = 3, .bank =
GPIO_A, .idx = 0 },
82 .mosi = { .port = 3, .bank =
GPIO_A, .idx = 1 },
83 .clk = { .port = 3, .bank =
GPIO_A, .idx = 2 },
84 .cs = { .port = 3, .bank =
GPIO_A, .idx = 3 },
88 .miso = { .port = 2, .bank =
GPIO_C, .idx = 4 },
89 .mosi = { .port = 2, .bank =
GPIO_C, .idx = 5 },
90 .clk = { .port = 2, .bank =
GPIO_C, .idx = 6 },
91 .cs = { .port = 2, .bank =
GPIO_C, .idx = 7 },
123 size_t bytes_out,
void *din,
size_t bytes_in)
127 dout, bytes_out, din, bytes_in);
134 .max_xfer_size = 65535,
#define assert(statement)
int spi_bitbang_xfer(const struct spi_bitbang_ops *ops, const void *dout, size_t bytes_out, void *din, size_t bytes_in)
int spi_bitbang_claim_bus(const struct spi_bitbang_ops *ops)
void spi_bitbang_release_bus(const struct spi_bitbang_ops *ops)
#define container_of(ptr, type, member)
container_of - cast a member of a structure out to the containing structure
int gpio_get(gpio_t gpio)
void gpio_input(gpio_t gpio)
void gpio_output(gpio_t gpio, int value)
void gpio_set(gpio_t gpio, int value)
static struct device_operations ops
static void spi_ctrlr_release_bus(const struct spi_slave *slave)
static const struct spi_ctrlr spi_ctrlr
static const struct rockchip_bitbang_slave slaves[]
void rockchip_spi_init(unsigned int bus, unsigned int ignored_speed_hz)
static void set_cs(const struct spi_bitbang_ops *ops, int value)
const struct spi_ctrlr_buses spi_ctrlr_bus_map[]
void rockchip_spi_set_sample_delay(unsigned int bus, unsigned int delay_ns)
static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout, size_t bytes_out, void *din, size_t bytes_in)
static int get_miso(const struct spi_bitbang_ops *ops)
static void set_mosi(const struct spi_bitbang_ops *ops, int value)
static int spi_ctrlr_claim_bus(const struct spi_slave *slave)
static void set_clk(const struct spi_bitbang_ops *ops, int value)
const size_t spi_ctrlr_bus_map_count
static struct spi_slave slave
struct spi_bitbang_ops ops
const struct spi_ctrlr * ctrlr
int(* claim_bus)(const struct spi_slave *slave)