summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_x1000/nand-x1000.h
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2022-06-07 18:06:31 +0100
committerAidan MacDonald <amachronic@protonmail.com>2022-07-10 15:22:10 +0100
commitad8ace53e5284a9b0c07f20ad10440dbc48dd4f7 (patch)
tree1a7c000ffffe6660640d96db5d3556b7801dcfb5 /firmware/target/mips/ingenic_x1000/nand-x1000.h
parentcc017f211a338a68a571226e589ce34e47fc8ad3 (diff)
downloadrockbox-ad8ace53e5284a9b0c07f20ad10440dbc48dd4f7.tar.gz
rockbox-ad8ace53e5284a9b0c07f20ad10440dbc48dd4f7.zip
x1000: remove 'typedef struct' from NAND driver
Using 'typedef struct' is not in line with the project coding style and somewhat problematic, so get rid of it here. Change-Id: Icfe79de72ed82cb7526e9f4e8296ec12084c01ac
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/nand-x1000.h')
-rw-r--r--firmware/target/mips/ingenic_x1000/nand-x1000.h32
1 files changed, 16 insertions, 16 deletions
diff --git a/firmware/target/mips/ingenic_x1000/nand-x1000.h b/firmware/target/mips/ingenic_x1000/nand-x1000.h
index 176897e4f2..dda54eb5c6 100644
--- a/firmware/target/mips/ingenic_x1000/nand-x1000.h
+++ b/firmware/target/mips/ingenic_x1000/nand-x1000.h
@@ -95,7 +95,7 @@
95typedef uint32_t nand_block_t; 95typedef uint32_t nand_block_t;
96typedef uint32_t nand_page_t; 96typedef uint32_t nand_page_t;
97 97
98typedef struct nand_chip { 98struct nand_chip {
99 /* Manufacturer and device ID bytes */ 99 /* Manufacturer and device ID bytes */
100 uint8_t mf_id; 100 uint8_t mf_id;
101 uint8_t dev_id; 101 uint8_t dev_id;
@@ -126,9 +126,9 @@ typedef struct nand_chip {
126 126
127 /* Chip specific flags */ 127 /* Chip specific flags */
128 uint32_t flags; 128 uint32_t flags;
129} nand_chip; 129};
130 130
131typedef struct nand_drv { 131struct nand_drv {
132 /* NAND access lock. Needs to be held during any operations. */ 132 /* NAND access lock. Needs to be held during any operations. */
133 struct mutex mutex; 133 struct mutex mutex;
134 134
@@ -150,7 +150,7 @@ typedef struct nand_drv {
150 uint8_t* page_buf; 150 uint8_t* page_buf;
151 151
152 /* Pointer to the chip data. */ 152 /* Pointer to the chip data. */
153 const nand_chip* chip; 153 const struct nand_chip* chip;
154 154
155 /* Pages per block = 1 << chip->log2_ppb */ 155 /* Pages per block = 1 << chip->log2_ppb */
156 unsigned ppb; 156 unsigned ppb;
@@ -169,9 +169,9 @@ typedef struct nand_drv {
169 uint32_t cmd_program_load; 169 uint32_t cmd_program_load;
170 uint32_t cmd_program_execute; 170 uint32_t cmd_program_execute;
171 uint32_t cmd_block_erase; 171 uint32_t cmd_block_erase;
172} nand_drv; 172};
173 173
174extern const nand_chip supported_nand_chips[]; 174extern const struct nand_chip supported_nand_chips[];
175extern const size_t nr_supported_nand_chips; 175extern const size_t nr_supported_nand_chips;
176 176
177/* Return the static NAND driver instance. 177/* Return the static NAND driver instance.
@@ -179,14 +179,14 @@ extern const size_t nr_supported_nand_chips;
179 * ALL normal Rockbox code should use this instance. The SPL does not 179 * ALL normal Rockbox code should use this instance. The SPL does not
180 * use it, because it needs to manually place buffers in external RAM. 180 * use it, because it needs to manually place buffers in external RAM.
181 */ 181 */
182extern nand_drv* nand_init(void); 182extern struct nand_drv* nand_init(void);
183 183
184static inline void nand_lock(nand_drv* drv) 184static inline void nand_lock(struct nand_drv* drv)
185{ 185{
186 mutex_lock(&drv->mutex); 186 mutex_lock(&drv->mutex);
187} 187}
188 188
189static inline void nand_unlock(nand_drv* drv) 189static inline void nand_unlock(struct nand_drv* drv)
190{ 190{
191 mutex_unlock(&drv->mutex); 191 mutex_unlock(&drv->mutex);
192} 192}
@@ -200,8 +200,8 @@ static inline void nand_unlock(nand_drv* drv)
200 * 200 *
201 * These functions require the lock to be held. 201 * These functions require the lock to be held.
202 */ 202 */
203extern int nand_open(nand_drv* drv); 203extern int nand_open(struct nand_drv* drv);
204extern void nand_close(nand_drv* drv); 204extern void nand_close(struct nand_drv* drv);
205 205
206/* Read / program / erase operations. Buffer needs to be cache-aligned for DMA. 206/* Read / program / erase operations. Buffer needs to be cache-aligned for DMA.
207 * Read and program operate on full page data, ie. including OOB data areas. 207 * Read and program operate on full page data, ie. including OOB data areas.
@@ -209,15 +209,15 @@ extern void nand_close(nand_drv* drv);
209 * NOTE: ECC is not implemented. If it ever needs to be, these functions will 209 * NOTE: ECC is not implemented. If it ever needs to be, these functions will
210 * probably use ECC transparently. All code should be written to expect this. 210 * probably use ECC transparently. All code should be written to expect this.
211 */ 211 */
212extern int nand_block_erase(nand_drv* drv, nand_block_t block); 212extern int nand_block_erase(struct nand_drv* drv, nand_block_t block);
213extern int nand_page_program(nand_drv* drv, nand_page_t page, const void* buffer); 213extern int nand_page_program(struct nand_drv* drv, nand_page_t page, const void* buffer);
214extern int nand_page_read(nand_drv* drv, nand_page_t page, void* buffer); 214extern int nand_page_read(struct nand_drv* drv, nand_page_t page, void* buffer);
215 215
216/* Wrappers to read/write bytes. For simple access to the main data area only. 216/* Wrappers to read/write bytes. For simple access to the main data area only.
217 * The write address / length must align to a block boundary. Reads do not have 217 * The write address / length must align to a block boundary. Reads do not have
218 * any alignment requirement. OOB data is never read, and is written as 0xff. 218 * any alignment requirement. OOB data is never read, and is written as 0xff.
219 */ 219 */
220extern int nand_read_bytes(nand_drv* drv, uint32_t byte_addr, uint32_t byte_len, void* buffer); 220extern int nand_read_bytes(struct nand_drv* drv, uint32_t byte_addr, uint32_t byte_len, void* buffer);
221extern int nand_write_bytes(nand_drv* drv, uint32_t byte_addr, uint32_t byte_len, const void* buffer); 221extern int nand_write_bytes(struct nand_drv* drv, uint32_t byte_addr, uint32_t byte_len, const void* buffer);
222 222
223#endif /* __NAND_X1000_H__ */ 223#endif /* __NAND_X1000_H__ */