duos: support usb storage like USB flash disk
This commit is contained in:
@ -21,6 +21,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb {
|
||||
vbus-gpio = <&portb 6 0>;
|
||||
};
|
||||
|
||||
/ {
|
||||
|
||||
};
|
||||
|
||||
@ -30,6 +30,8 @@ CONFIG_STRICT_KERNEL_RWX=n
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_FORCE_LOAD=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_BLK_SCSI_REQUEST=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_MQ_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_MQ_IOSCHED_KYBER is not set
|
||||
@ -52,6 +54,11 @@ CONFIG_MTD_CMDLINE_PARTS=y
|
||||
# CONFIG_MTD_OF_PARTS is not set
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_NET_CORE is not set
|
||||
# CONFIG_NET_VENDOR_ALACRITECH is not set
|
||||
@ -369,6 +376,7 @@ CONFIG_SND_SOC_CV182XADAC=y
|
||||
CONFIG_SND_SOC_CV1835_USE_AUDIO_PLL=y
|
||||
CONFIG_CV1835_I2S_SUBSYS=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_USB_DWC2=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_LIBCOMPOSITE=y
|
||||
@ -388,6 +396,7 @@ CONFIG_USB_CONFIGFS=y
|
||||
CONFIG_USB_CONFIGFS_SERIAL=y
|
||||
CONFIG_USB_CONFIGFS_RNDIS=y
|
||||
CONFIG_USB_CONFIGFS_ACM=y
|
||||
CONFIG_USB_ROLE_SWITCH=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
|
||||
@ -12,5 +12,8 @@ int cvi_board_init(void)
|
||||
PINMUX_CONFIG(VIVO_D1, IIC4_SCL);
|
||||
PINMUX_CONFIG(VIVO_D0, IIC4_SDA);
|
||||
|
||||
// USB
|
||||
PINMUX_CONFIG(USB_VBUS_EN, XGPIOB_5);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1,4 +1,29 @@
|
||||
#!/bin/sh
|
||||
|
||||
usb_en=453
|
||||
usb_select=510
|
||||
|
||||
function set_gpio()
|
||||
{
|
||||
local gpio_num=$1
|
||||
local gpio_val=$2
|
||||
local gpio_path="/sys/class/gpio/gpio${gpio_num}"
|
||||
|
||||
if test -d ${gpio_path}; then
|
||||
echo "GPIO ${gpio_num} already exported" >> /tmp/usb.log 2>&1
|
||||
else
|
||||
echo ${gpio_num} > /sys/class/gpio/export
|
||||
fi
|
||||
|
||||
echo out > ${gpio_path}/direction
|
||||
sleep 0.1
|
||||
echo ${gpio_val} > ${gpio_path}/value
|
||||
}
|
||||
|
||||
set_gpio ${usb_select} 1
|
||||
sleep 0.5
|
||||
set_gpio ${usb_en} 1
|
||||
sleep 0.5
|
||||
|
||||
echo host > /proc/cviusb/otg_role >> /tmp/usb.log 2>&1
|
||||
|
||||
|
||||
@ -1,5 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
usb_en=453
|
||||
usb_select=510
|
||||
|
||||
function set_gpio()
|
||||
{
|
||||
local gpio_num=$1
|
||||
local gpio_val=$2
|
||||
local gpio_path="/sys/class/gpio/gpio${gpio_num}"
|
||||
|
||||
if test -d ${gpio_path}; then
|
||||
echo "GPIO ${gpio_num} already exported" >> /tmp/rndis.log 2>&1
|
||||
else
|
||||
echo ${gpio_num} > /sys/class/gpio/export
|
||||
fi
|
||||
|
||||
echo out > ${gpio_path}/direction
|
||||
sleep 0.1
|
||||
echo ${gpio_val} > ${gpio_path}/value
|
||||
}
|
||||
|
||||
set_gpio ${usb_en} 0
|
||||
sleep 0.5
|
||||
set_gpio ${usb_select} 0
|
||||
sleep 0.5
|
||||
|
||||
/etc/uhubon.sh device >> /tmp/rndis.log 2>&1
|
||||
/etc/run_usb.sh probe rndis >> /tmp/rndis.log 2>&1
|
||||
/etc/run_usb.sh start rndis >> /tmp/rndis.log 2>&1
|
||||
|
||||
Reference in New Issue
Block a user