Blame view
drivers/spi/cadence_qspi.h
2.46 KB
83d290c56 SPDX: Convert all... |
1 |
/* SPDX-License-Identifier: GPL-2.0+ */ |
10e8bf88c spi: Add Cadence ... |
2 3 4 |
/* * Copyright (C) 2012 * Altera Corporation <www.altera.com> |
10e8bf88c spi: Add Cadence ... |
5 6 7 8 |
*/ #ifndef __CADENCE_QSPI_H__ #define __CADENCE_QSPI_H__ |
ac7e14ae0 spi: cadence_qspi... |
9 |
#include <reset.h> |
10e8bf88c spi: Add Cadence ... |
10 11 12 13 14 15 16 |
#define CQSPI_IS_ADDR(cmd_len) (cmd_len > 1 ? 1 : 0) #define CQSPI_NO_DECODER_MAX_CS 4 #define CQSPI_DECODER_MAX_CS 16 #define CQSPI_READ_CAPTURE_MAX_DELAY 16 struct cadence_spi_platdata { |
64c7c8c91 spi: cadence_qspi... |
17 |
unsigned int ref_clk_hz; |
10e8bf88c spi: Add Cadence ... |
18 19 20 |
unsigned int max_hz; void *regbase; void *ahbbase; |
15a70a5da spi: cadence_spi:... |
21 22 23 24 |
bool is_decoded_cs; u32 fifo_depth; u32 fifo_width; u32 trigger_address; |
ffab21212 spi: cadence-qspi... |
25 26 |
fdt_addr_t ahbsize; bool use_dac_mode; |
10e8bf88c spi: Add Cadence ... |
27 |
|
15a70a5da spi: cadence_spi:... |
28 |
/* Flash parameters */ |
10e8bf88c spi: Add Cadence ... |
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
u32 page_size; u32 block_size; u32 tshsl_ns; u32 tsd2d_ns; u32 tchsh_ns; u32 tslch_ns; }; struct cadence_spi_priv { void *regbase; void *ahbbase; size_t cmd_len; u8 cmd_buf[32]; size_t data_len; int qspi_is_init; unsigned int qspi_calibrated_hz; unsigned int qspi_calibrated_cs; |
98fbd71d7 spi: cadence_qspi... |
47 |
unsigned int previous_hz; |
ac7e14ae0 spi: cadence_qspi... |
48 49 |
struct reset_ctl_bulk resets; |
10e8bf88c spi: Add Cadence ... |
50 51 52 53 54 55 |
}; /* Functions call declaration */ void cadence_qspi_apb_controller_init(struct cadence_spi_platdata *plat); void cadence_qspi_apb_controller_enable(void *reg_base_addr); void cadence_qspi_apb_controller_disable(void *reg_base_addr); |
ffab21212 spi: cadence-qspi... |
56 |
void cadence_qspi_apb_dac_mode_enable(void *reg_base); |
10e8bf88c spi: Add Cadence ... |
57 58 |
int cadence_qspi_apb_command_read(void *reg_base_addr, |
d64077202 spi: cadence_qspi... |
59 |
const struct spi_mem_op *op); |
10e8bf88c spi: Add Cadence ... |
60 |
int cadence_qspi_apb_command_write(void *reg_base_addr, |
d64077202 spi: cadence_qspi... |
61 |
const struct spi_mem_op *op); |
10e8bf88c spi: Add Cadence ... |
62 |
|
ffab21212 spi: cadence-qspi... |
63 64 65 66 67 68 69 70 |
int cadence_qspi_apb_read_setup(struct cadence_spi_platdata *plat, const struct spi_mem_op *op); int cadence_qspi_apb_read_execute(struct cadence_spi_platdata *plat, const struct spi_mem_op *op); int cadence_qspi_apb_write_setup(struct cadence_spi_platdata *plat, const struct spi_mem_op *op); int cadence_qspi_apb_write_execute(struct cadence_spi_platdata *plat, const struct spi_mem_op *op); |
10e8bf88c spi: Add Cadence ... |
71 72 73 |
void cadence_qspi_apb_chipselect(void *reg_base, unsigned int chip_select, unsigned int decoder_enable); |
7d403f284 spi: cadence_qspi... |
74 |
void cadence_qspi_apb_set_clk_mode(void *reg_base, uint mode); |
10e8bf88c spi: Add Cadence ... |
75 76 77 78 79 80 81 82 83 84 85 |
void cadence_qspi_apb_config_baudrate_div(void *reg_base, unsigned int ref_clk_hz, unsigned int sclk_hz); void cadence_qspi_apb_delay(void *reg_base, unsigned int ref_clk, unsigned int sclk_hz, unsigned int tshsl_ns, unsigned int tsd2d_ns, unsigned int tchsh_ns, unsigned int tslch_ns); void cadence_qspi_apb_enter_xip(void *reg_base, char xip_dummy); void cadence_qspi_apb_readdata_capture(void *reg_base, unsigned int bypass, unsigned int delay); #endif /* __CADENCE_QSPI_H__ */ |