1*441217e3SZhaoyifeng /*
2*441217e3SZhaoyifeng * Copyright (C) (C) Copyright 2016-2017 Rockchip Electronics Co., Ltd
3*441217e3SZhaoyifeng *
4*441217e3SZhaoyifeng * SPDX-License-Identifier: GPL-2.0+
5*441217e3SZhaoyifeng */
6*441217e3SZhaoyifeng
7*441217e3SZhaoyifeng #include <common.h>
8*441217e3SZhaoyifeng #include <command.h>
9*441217e3SZhaoyifeng #include <dm.h>
10*441217e3SZhaoyifeng #include <rknand.h>
11*441217e3SZhaoyifeng
12*441217e3SZhaoyifeng static int rknand_curr_dev;
do_rknand(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])13*441217e3SZhaoyifeng static int do_rknand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
14*441217e3SZhaoyifeng {
15*441217e3SZhaoyifeng int ret;
16*441217e3SZhaoyifeng
17*441217e3SZhaoyifeng if (argc == 2) {
18*441217e3SZhaoyifeng if (strncmp(argv[1], "scan", 4) == 0) {
19*441217e3SZhaoyifeng ret = rknand_scan_namespace();
20*441217e3SZhaoyifeng if (ret)
21*441217e3SZhaoyifeng return CMD_RET_FAILURE;
22*441217e3SZhaoyifeng
23*441217e3SZhaoyifeng return ret;
24*441217e3SZhaoyifeng }
25*441217e3SZhaoyifeng }
26*441217e3SZhaoyifeng
27*441217e3SZhaoyifeng return blk_common_cmd(argc, argv, IF_TYPE_RKNAND, &rknand_curr_dev);
28*441217e3SZhaoyifeng }
29*441217e3SZhaoyifeng
30*441217e3SZhaoyifeng U_BOOT_CMD(
31*441217e3SZhaoyifeng rknand, 8, 1, do_rknand,
32*441217e3SZhaoyifeng "rockchip nand flash sub-system",
33*441217e3SZhaoyifeng "scan - scan Nand devices\n"
34*441217e3SZhaoyifeng "rknand info - show all available Nand devices\n"
35*441217e3SZhaoyifeng "rknand device [dev] - show or set current Nand device\n"
36*441217e3SZhaoyifeng "rknand part [dev] - print partition table of one or all Nand devices\n"
37*441217e3SZhaoyifeng "rknand read addr blk# cnt - read `cnt' blocks starting at block\n"
38*441217e3SZhaoyifeng " `blk#' to memory address `addr'\n"
39*441217e3SZhaoyifeng "rknand write addr blk# cnt - write `cnt' blocks starting at block\n"
40*441217e3SZhaoyifeng " `blk#' from memory address `addr'"
41*441217e3SZhaoyifeng );
42