Lines Matching +full:0 +full:- +full:dev

2  * Copyright (c) 2006-2018, RT-Thread Development Team
4 * SPDX-License-Identifier: Apache-2.0
8 * 2011-12-05 Bernard the first version
20 * RT-Thread Generic Device Interface
22 static rt_err_t _mtd_init(rt_device_t dev) in _mtd_init() argument
27 static rt_err_t _mtd_open(rt_device_t dev, rt_uint16_t oflag) in _mtd_open() argument
32 static rt_err_t _mtd_close(rt_device_t dev) in _mtd_close() argument
37 static rt_size_t _mtd_read(rt_device_t dev, in _mtd_read() argument
45 static rt_size_t _mtd_write(rt_device_t dev, in _mtd_write() argument
53 static rt_err_t _mtd_control(rt_device_t dev, int cmd, void *args) in _mtd_control() argument
73 rt_device_t dev; in rt_mtd_nand_register_device() local
75 dev = RT_DEVICE(device); in rt_mtd_nand_register_device()
76 RT_ASSERT(dev != RT_NULL); in rt_mtd_nand_register_device()
79 dev->type = RT_Device_Class_MTD; in rt_mtd_nand_register_device()
81 dev->ops = &mtd_nand_ops; in rt_mtd_nand_register_device()
83 dev->init = _mtd_init; in rt_mtd_nand_register_device()
84 dev->open = _mtd_open; in rt_mtd_nand_register_device()
85 dev->read = _mtd_read; in rt_mtd_nand_register_device()
86 dev->write = _mtd_write; in rt_mtd_nand_register_device()
87 dev->close = _mtd_close; in rt_mtd_nand_register_device()
88 dev->control = _mtd_control; in rt_mtd_nand_register_device()
91 dev->rx_indicate = RT_NULL; in rt_mtd_nand_register_device()
92 dev->tx_complete = RT_NULL; in rt_mtd_nand_register_device()
94 /* register to RT-Thread device system */ in rt_mtd_nand_register_device()
95 return rt_device_register(dev, name, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_STANDALONE); in rt_mtd_nand_register_device()
100 #define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')
106 for (i=0; i<buflen; i+=16) in mtd_dump_hex()
109 for (j=0; j<16; j++) in mtd_dump_hex()
115 for (j=0; j<16; j++) in mtd_dump_hex()
129 return -RT_ERROR; in mtd_nandid()
134 FINSH_FUNCTION_EXPORT_ALIAS(mtd_nandid, nand_id, read ID - nandid(name));
147 return -RT_ERROR; in mtd_nand_read()
150 page_ptr = rt_malloc(nand->page_size + nand->oob_size); in mtd_nand_read()
154 return -RT_ENOMEM; in mtd_nand_read()
157 oob_ptr = page_ptr + nand->page_size; in mtd_nand_read()
158 rt_memset(page_ptr, 0xff, nand->page_size + nand->oob_size); in mtd_nand_read()
161 page = block * nand->pages_per_block + page; in mtd_nand_read()
162 result = rt_mtd_nand_read(nand, page, page_ptr, nand->page_size, in mtd_nand_read()
163 oob_ptr, nand->oob_size); in mtd_nand_read()
166 mtd_dump_hex(page_ptr, nand->page_size); in mtd_nand_read()
167 mtd_dump_hex(oob_ptr, nand->oob_size); in mtd_nand_read()
170 return 0; in mtd_nand_read()
172 FINSH_FUNCTION_EXPORT_ALIAS(mtd_nand_read, nand_read, read page in nand - nand_read(name, block, pa…
183 return -RT_ERROR; in mtd_nand_readoob()
186 oob_ptr = rt_malloc(nand->oob_size); in mtd_nand_readoob()
190 return -RT_ENOMEM; in mtd_nand_readoob()
194 page = block * nand->pages_per_block + page; in mtd_nand_readoob()
195 rt_mtd_nand_read(nand, page, RT_NULL, nand->page_size, in mtd_nand_readoob()
196 oob_ptr, nand->oob_size); in mtd_nand_readoob()
197 mtd_dump_hex(oob_ptr, nand->oob_size); in mtd_nand_readoob()
200 return 0; in mtd_nand_readoob()
202 FINSH_FUNCTION_EXPORT_ALIAS(mtd_nand_readoob, nand_readoob, read spare data in nand - nand_readoob(…
216 return -RT_ERROR; in mtd_nand_write()
219 page_ptr = rt_malloc(nand->page_size + nand->oob_size); in mtd_nand_write()
223 return -RT_ENOMEM; in mtd_nand_write()
226 oob_ptr = page_ptr + nand->page_size; in mtd_nand_write()
228 for (index = 0; index < nand->page_size; index ++) in mtd_nand_write()
230 page_ptr[index] = index & 0xff; in mtd_nand_write()
233 for (index = 0; index < nand->oob_size; index ++) in mtd_nand_write()
235 oob_ptr[index] = index & 0xff; in mtd_nand_write()
239 page = block * nand->pages_per_block + page; in mtd_nand_write()
240 result = rt_mtd_nand_write(nand, page, page_ptr, nand->page_size, in mtd_nand_write()
241 oob_ptr, nand->oob_size); in mtd_nand_write()
248 return 0; in mtd_nand_write()
250 FINSH_FUNCTION_EXPORT_ALIAS(mtd_nand_write, nand_write, write dump data to nand - nand_write(name, …
259 return -RT_ERROR; in mtd_nand_erase()
268 rt_uint32_t index = 0; in mtd_nand_erase_all()
275 return -RT_ERROR; in mtd_nand_erase_all()
278 for (index = 0; index < (nand->block_end - nand->block_start); index ++) in mtd_nand_erase_all()
283 return 0; in mtd_nand_erase_all()
285 FINSH_FUNCTION_EXPORT_ALIAS(mtd_nand_erase_all, nand_erase_all, erase all of nand device - nand_era…