1*f16e43f8SFrank Wang /* 2*f16e43f8SFrank Wang * Copyright 2017 Rockchip Electronics Co., Ltd 3*f16e43f8SFrank Wang * Frank Wang <frank.wang@rock-chips.com> 4*f16e43f8SFrank Wang * 5*f16e43f8SFrank Wang * SPDX-License-Identifier: GPL-2.0+ 6*f16e43f8SFrank Wang */ 7*f16e43f8SFrank Wang 8*f16e43f8SFrank Wang #ifndef __ROCKUSB_H__ 9*f16e43f8SFrank Wang #define __ROCKUSB_H__ 10*f16e43f8SFrank Wang 11*f16e43f8SFrank Wang #include <common.h> 12*f16e43f8SFrank Wang #include <part.h> 13*f16e43f8SFrank Wang #include <linux/usb/composite.h> 14*f16e43f8SFrank Wang 15*f16e43f8SFrank Wang enum rkusb_cmd { 16*f16e43f8SFrank Wang RKUSB_TEST_UNIT_READY = 0x00, 17*f16e43f8SFrank Wang RKUSB_READ_FLASH_ID = 0x01, 18*f16e43f8SFrank Wang RKUSB_SET_DEVICE_ID = 0x02, 19*f16e43f8SFrank Wang RKUSB_TEST_BAD_BLOCK = 0x03, 20*f16e43f8SFrank Wang RKUSB_READ_10 = 0x04, 21*f16e43f8SFrank Wang RKUSB_WRITE_10 = 0x05, 22*f16e43f8SFrank Wang RKUSB_ERASE_10 = 0x06, 23*f16e43f8SFrank Wang RKUSB_WRITE_SPARE = 0x07, 24*f16e43f8SFrank Wang RKUSB_READ_SPARE = 0x08, 25*f16e43f8SFrank Wang RKUSB_ERASE_10_FORCE = 0x0B, 26*f16e43f8SFrank Wang RKUSB_GET_VERSION = 0x0C, 27*f16e43f8SFrank Wang RKUSB_LBA_READ_10 = 0x14, 28*f16e43f8SFrank Wang RKUSB_LBA_WRITE_10 = 0x15, 29*f16e43f8SFrank Wang RKUSB_ERASE_SYS_DISK = 0x16, 30*f16e43f8SFrank Wang RKUSB_SDRAM_READ_10 = 0x17, 31*f16e43f8SFrank Wang RKUSB_SDRAM_WRITE_10 = 0x18, 32*f16e43f8SFrank Wang RKUSB_SDRAM_EXECUTE = 0x19, 33*f16e43f8SFrank Wang RKUSB_READ_FLASH_INFO = 0x1A, 34*f16e43f8SFrank Wang RKUSB_GET_CHIP_VER = 0x1B, 35*f16e43f8SFrank Wang RKUSB_LOW_FORMAT = 0x1C, 36*f16e43f8SFrank Wang RKUSB_SET_RESET_FLAG = 0x1E, 37*f16e43f8SFrank Wang RKUSB_SPI_READ_10 = 0x21, 38*f16e43f8SFrank Wang RKUSB_SPI_WRITE_10 = 0x22, 39*f16e43f8SFrank Wang RKUSB_LBA_ERASE = 0x25, 40*f16e43f8SFrank Wang RKUSB_SESSION = 0x30, 41*f16e43f8SFrank Wang RKUSB_READ_CAPACITY = 0xAA, 42*f16e43f8SFrank Wang RKUSB_RESET = 0xFF, 43*f16e43f8SFrank Wang }; 44*f16e43f8SFrank Wang 45*f16e43f8SFrank Wang enum rkusb_rc { 46*f16e43f8SFrank Wang RKUSB_RC_ERROR = -1, 47*f16e43f8SFrank Wang RKUSB_RC_CONTINUE = 0, 48*f16e43f8SFrank Wang RKUSB_RC_FINISHED = 1, 49*f16e43f8SFrank Wang RKUSB_RC_UNKNOWN_CMND = 2, 50*f16e43f8SFrank Wang }; 51*f16e43f8SFrank Wang 52*f16e43f8SFrank Wang #ifdef CONFIG_CMD_ROCKUSB 53*f16e43f8SFrank Wang #define IS_RKUSB_UMS_DNL(name) (!strncmp((name), "rkusb_ums_dnl", 13)) 54*f16e43f8SFrank Wang #else 55*f16e43f8SFrank Wang #define IS_RKUSB_UMS_DNL(name) 0 56*f16e43f8SFrank Wang 57*f16e43f8SFrank Wang struct fsg_buffhd; 58*f16e43f8SFrank Wang struct fsg_dev; 59*f16e43f8SFrank Wang struct fsg_common; 60*f16e43f8SFrank Wang struct fsg_config; 61*f16e43f8SFrank Wang 62*f16e43f8SFrank Wang static struct usb_descriptor_header *rkusb_fs_function[]; 63*f16e43f8SFrank Wang static struct usb_descriptor_header *rkusb_hs_function[]; 64*f16e43f8SFrank Wang 65*f16e43f8SFrank Wang static inline int rkusb_cmd_process(struct fsg_common *common, 66*f16e43f8SFrank Wang struct fsg_buffhd *bh, int *reply) 67*f16e43f8SFrank Wang { 68*f16e43f8SFrank Wang return -EPERM; 69*f16e43f8SFrank Wang } 70*f16e43f8SFrank Wang #endif 71*f16e43f8SFrank Wang 72*f16e43f8SFrank Wang #endif /* __ROCKUSB_H__ */ 73