parent
7250301d3e
commit
3b1ce1e4b6
|
@ -30,6 +30,5 @@ rsource "ktime/Kconfig"
|
||||||
rsource "clk/Kconfig"
|
rsource "clk/Kconfig"
|
||||||
rsource "hwtimer/Kconfig"
|
rsource "hwtimer/Kconfig"
|
||||||
rsource "usb/Kconfig"
|
rsource "usb/Kconfig"
|
||||||
rsource "fdt/Kconfig"
|
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
|
@ -1,200 +1,2 @@
|
||||||
menu "Using USB legacy version"
|
rsource "usb/Kconfig"
|
||||||
config RT_USING_USB
|
rsource "fdt/Kconfig"
|
||||||
bool
|
|
||||||
default n
|
|
||||||
|
|
||||||
config RT_USING_USB_HOST
|
|
||||||
bool "Using USB host"
|
|
||||||
default n
|
|
||||||
select RT_USING_USB
|
|
||||||
|
|
||||||
if RT_USING_USB_HOST
|
|
||||||
config RT_USBH_MSTORAGE
|
|
||||||
bool "Enable Udisk Drivers"
|
|
||||||
default n
|
|
||||||
if RT_USBH_MSTORAGE
|
|
||||||
config UDISK_MOUNTPOINT
|
|
||||||
string "Udisk mount dir"
|
|
||||||
default "/"
|
|
||||||
endif
|
|
||||||
config RT_USBH_HID
|
|
||||||
bool "Enable HID Drivers"
|
|
||||||
default n
|
|
||||||
if RT_USBH_HID
|
|
||||||
config RT_USBH_HID_MOUSE
|
|
||||||
bool "Enable HID mouse protocol"
|
|
||||||
default n
|
|
||||||
config RT_USBH_HID_KEYBOARD
|
|
||||||
bool "Enable HID keyboard protocol"
|
|
||||||
default n
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
config RT_USING_USB_DEVICE
|
|
||||||
bool "Using USB device"
|
|
||||||
default n
|
|
||||||
select RT_USING_USB
|
|
||||||
|
|
||||||
if RT_USING_USB_DEVICE || RT_USING_USB_HOST
|
|
||||||
config RT_USBD_THREAD_STACK_SZ
|
|
||||||
int "usb thread stack size"
|
|
||||||
default 4096
|
|
||||||
endif
|
|
||||||
if RT_USING_USB_DEVICE
|
|
||||||
config USB_VENDOR_ID
|
|
||||||
hex "USB Vendor ID"
|
|
||||||
default 0x0FFE
|
|
||||||
config USB_PRODUCT_ID
|
|
||||||
hex "USB Product ID"
|
|
||||||
default 0x0001
|
|
||||||
|
|
||||||
config RT_USB_DEVICE_COMPOSITE
|
|
||||||
bool "Enable composite device"
|
|
||||||
default n
|
|
||||||
choice
|
|
||||||
prompt "Device type"
|
|
||||||
default _RT_USB_DEVICE_NONE
|
|
||||||
depends on !RT_USB_DEVICE_COMPOSITE
|
|
||||||
config _RT_USB_DEVICE_NONE
|
|
||||||
bool "Using custom class by register interface"
|
|
||||||
select RT_USB_DEVICE_NONE
|
|
||||||
config _RT_USB_DEVICE_CDC
|
|
||||||
bool "Enable to use device as CDC device"
|
|
||||||
select RT_USB_DEVICE_CDC
|
|
||||||
config _RT_USB_DEVICE_MSTORAGE
|
|
||||||
bool "Enable to use device as Mass Storage device"
|
|
||||||
select RT_USB_DEVICE_MSTORAGE
|
|
||||||
config _RT_USB_DEVICE_HID
|
|
||||||
bool "Enable to use device as HID device"
|
|
||||||
select RT_USB_DEVICE_HID
|
|
||||||
config _RT_USB_DEVICE_RNDIS
|
|
||||||
bool "Enable to use device as rndis device"
|
|
||||||
select RT_USB_DEVICE_RNDIS
|
|
||||||
depends on RT_USING_LWIP
|
|
||||||
config _RT_USB_DEVICE_ECM
|
|
||||||
bool "Enable to use device as ecm device"
|
|
||||||
select RT_USB_DEVICE_ECM
|
|
||||||
depends on RT_USING_LWIP
|
|
||||||
config _RT_USB_DEVICE_WINUSB
|
|
||||||
bool "Enable to use device as winusb device"
|
|
||||||
select RT_USB_DEVICE_WINUSB
|
|
||||||
config _RT_USB_DEVICE_AUDIO
|
|
||||||
bool "Enable to use device as audio device"
|
|
||||||
select RT_USB_DEVICE_AUDIO
|
|
||||||
endchoice
|
|
||||||
if RT_USB_DEVICE_COMPOSITE
|
|
||||||
config RT_USB_DEVICE_CDC
|
|
||||||
bool "Enable to use device as CDC device"
|
|
||||||
default n
|
|
||||||
config RT_USB_DEVICE_NONE
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
config RT_USB_DEVICE_MSTORAGE
|
|
||||||
bool "Enable to use device as Mass Storage device"
|
|
||||||
default n
|
|
||||||
config RT_USB_DEVICE_HID
|
|
||||||
bool "Enable to use device as HID device"
|
|
||||||
default n
|
|
||||||
config RT_USB_DEVICE_RNDIS
|
|
||||||
bool "Enable to use device as rndis device"
|
|
||||||
default n
|
|
||||||
depends on RT_USING_LWIP
|
|
||||||
config RT_USB_DEVICE_ECM
|
|
||||||
bool "Enable to use device as ecm device"
|
|
||||||
default n
|
|
||||||
depends on RT_USING_LWIP
|
|
||||||
config RT_USB_DEVICE_WINUSB
|
|
||||||
bool "Enable to use device as winusb device"
|
|
||||||
default n
|
|
||||||
config RT_USB_DEVICE_AUDIO
|
|
||||||
bool "Enable to use device as audio device"
|
|
||||||
default n
|
|
||||||
endif
|
|
||||||
if RT_USB_DEVICE_CDC
|
|
||||||
config RT_VCOM_TASK_STK_SIZE
|
|
||||||
int "virtual com thread stack size"
|
|
||||||
default 512
|
|
||||||
config RT_CDC_RX_BUFSIZE
|
|
||||||
int "virtual com rx buffer size"
|
|
||||||
default 128
|
|
||||||
config RT_VCOM_TX_USE_DMA
|
|
||||||
bool "Enable to use dma for vcom tx"
|
|
||||||
default n
|
|
||||||
config RT_VCOM_SERNO
|
|
||||||
string "serial number of virtual com"
|
|
||||||
default "32021919830108"
|
|
||||||
config RT_VCOM_SER_LEN
|
|
||||||
int "serial number length of virtual com"
|
|
||||||
default 14
|
|
||||||
config RT_VCOM_TX_TIMEOUT
|
|
||||||
int "tx timeout(ticks) of virtual com"
|
|
||||||
default 1000
|
|
||||||
endif
|
|
||||||
if RT_USB_DEVICE_WINUSB
|
|
||||||
config RT_WINUSB_GUID
|
|
||||||
string "Guid for winusb"
|
|
||||||
default "{6860DC3C-C05F-4807-8807-1CA861CC1D66}"
|
|
||||||
endif
|
|
||||||
if RT_USB_DEVICE_MSTORAGE
|
|
||||||
config RT_USB_MSTORAGE_DISK_NAME
|
|
||||||
string "msc class disk name"
|
|
||||||
default "flash0"
|
|
||||||
endif
|
|
||||||
|
|
||||||
if RT_USB_DEVICE_RNDIS
|
|
||||||
config RNDIS_DELAY_LINK_UP
|
|
||||||
bool "Delay linkup media connection"
|
|
||||||
select RT_USING_TIMER_SOFT
|
|
||||||
default n
|
|
||||||
endif
|
|
||||||
|
|
||||||
if RT_USB_DEVICE_HID
|
|
||||||
config RT_USB_DEVICE_HID_KEYBOARD
|
|
||||||
bool "Use to HID device as Keyboard"
|
|
||||||
default n
|
|
||||||
if RT_USB_DEVICE_HID_KEYBOARD
|
|
||||||
config RT_USB_DEVICE_HID_KEYBOARD_NUMBER
|
|
||||||
int "Number of Keyboard(max 3)"
|
|
||||||
default 1
|
|
||||||
range 1 3
|
|
||||||
endif
|
|
||||||
config RT_USB_DEVICE_HID_MOUSE
|
|
||||||
bool "Use to HID device as Mouse"
|
|
||||||
default n
|
|
||||||
config RT_USB_DEVICE_HID_GENERAL
|
|
||||||
bool "Use to HID device as General HID device"
|
|
||||||
default y
|
|
||||||
if RT_USB_DEVICE_HID_GENERAL
|
|
||||||
config RT_USB_DEVICE_HID_GENERAL_OUT_REPORT_LENGTH
|
|
||||||
int "General HID device out report length"
|
|
||||||
default 63
|
|
||||||
range 0 63
|
|
||||||
|
|
||||||
config RT_USB_DEVICE_HID_GENERAL_IN_REPORT_LENGTH
|
|
||||||
int "General HID device in report length"
|
|
||||||
default 63
|
|
||||||
range 0 63
|
|
||||||
endif
|
|
||||||
config RT_USB_DEVICE_HID_MEDIA
|
|
||||||
bool "Use to HID device as media keyboard"
|
|
||||||
default y
|
|
||||||
endif
|
|
||||||
if RT_USB_DEVICE_AUDIO
|
|
||||||
config RT_USB_DEVICE_AUDIO_MIC
|
|
||||||
bool "Use usb mic device as audio device"
|
|
||||||
default n
|
|
||||||
if RT_USB_DEVICE_AUDIO_MIC
|
|
||||||
config RT_USBD_MIC_DEVICE_NAME
|
|
||||||
string "audio mic device name"
|
|
||||||
default "mic0"
|
|
||||||
endif
|
|
||||||
config RT_USB_DEVICE_AUDIO_SPEAKER
|
|
||||||
bool "Use usb speaker device as audio device"
|
|
||||||
default n
|
|
||||||
if RT_USB_DEVICE_AUDIO_SPEAKER
|
|
||||||
config RT_USBD_SPEAKER_DEVICE_NAME
|
|
||||||
string "audio speaker device name"
|
|
||||||
default "sound0"
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endmenu
|
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
config RT_USING_FDT
|
||||||
|
bool "Using fdt legacy version"
|
||||||
|
default n
|
||||||
|
if RT_USING_FDT
|
||||||
|
config RT_USING_FDTLIB
|
||||||
|
bool "Using fdt lib for device drivers"
|
||||||
|
default y
|
||||||
|
config RT_USING_FDT_FWNODE
|
||||||
|
bool "Using fdt fwnode for device drivers"
|
||||||
|
default n
|
||||||
|
config FDT_USING_DEBUG
|
||||||
|
bool "Using fdt debug function "
|
||||||
|
default n
|
||||||
|
|
||||||
|
endif
|
|
@ -0,0 +1,125 @@
|
||||||
|
#ifndef __DTB_FWNODE_H__
|
||||||
|
#define __DTB_FWNODE_H__
|
||||||
|
|
||||||
|
#include "libfdt_env.h"
|
||||||
|
#include <rtthread.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
struct fwnode_operations;
|
||||||
|
struct rt_device;
|
||||||
|
|
||||||
|
#define FWNODE_FLAG_LINKS_ADDED 0x01
|
||||||
|
#define FWNODE_FLAG_NOT_DEVICE 0x02
|
||||||
|
#define FWNODE_FLAG_INITIALIZED 0x04
|
||||||
|
|
||||||
|
#define NR_FWNODE_REFERENCE_ARGS 8
|
||||||
|
|
||||||
|
struct fwnode_handle
|
||||||
|
{
|
||||||
|
struct fwnode_handle *secondary;
|
||||||
|
const struct fwnode_operations *ops;
|
||||||
|
struct rt_device *dev;
|
||||||
|
struct rt_list_node suppliers;
|
||||||
|
struct rt_list_node consumers;
|
||||||
|
uint8_t flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct fwnode_link
|
||||||
|
{
|
||||||
|
struct fwnode_handle *supplier;
|
||||||
|
struct rt_list_node s_hook;
|
||||||
|
struct fwnode_handle *consumer;
|
||||||
|
struct rt_list_node c_hook;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct fwnode_endpoint
|
||||||
|
{
|
||||||
|
unsigned int port;
|
||||||
|
unsigned int id;
|
||||||
|
const struct fwnode_handle *local_fwnode;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct fwnode_reference_args
|
||||||
|
{
|
||||||
|
struct fwnode_handle *fwnode;
|
||||||
|
unsigned int nargs;
|
||||||
|
uint64_t args[NR_FWNODE_REFERENCE_ARGS];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct fwnode_operations
|
||||||
|
{
|
||||||
|
struct fwnode_handle *(*get)(struct fwnode_handle *fwnode);
|
||||||
|
void (*put)(struct fwnode_handle *fwnode);
|
||||||
|
bool (*device_is_available)(const struct fwnode_handle *fwnode);
|
||||||
|
const void *(*device_get_match_data)(const struct fwnode_handle *fwnode,
|
||||||
|
const struct rt_device *dev);
|
||||||
|
bool (*property_present)(const struct fwnode_handle *fwnode,
|
||||||
|
const char *propname);
|
||||||
|
int (*property_read_int_array)(const struct fwnode_handle *fwnode,
|
||||||
|
const char *propname,
|
||||||
|
unsigned int elem_size, void *val,
|
||||||
|
size_t nval);
|
||||||
|
int (*property_read_string_array)(const struct fwnode_handle *fwnode_handle,
|
||||||
|
const char *propname, const char **val,
|
||||||
|
size_t nval);
|
||||||
|
const char *(*get_name)(const struct fwnode_handle *fwnode);
|
||||||
|
const char *(*get_name_prefix)(const struct fwnode_handle *fwnode);
|
||||||
|
struct fwnode_handle *(*get_parent)(const struct fwnode_handle *fwnode);
|
||||||
|
struct fwnode_handle *(*get_next_child_node)(const struct fwnode_handle *fwnode,
|
||||||
|
struct fwnode_handle *child);
|
||||||
|
struct fwnode_handle *(*get_named_child_node)(const struct fwnode_handle *fwnode,
|
||||||
|
const char *name);
|
||||||
|
int (*get_reference_args)(const struct fwnode_handle *fwnode,
|
||||||
|
const char *prop, const char *nargs_prop,
|
||||||
|
unsigned int nargs, unsigned int index,
|
||||||
|
struct fwnode_reference_args *args);
|
||||||
|
struct fwnode_handle *(*graph_get_next_endpoint)(const struct fwnode_handle *fwnode,
|
||||||
|
struct fwnode_handle *prev);
|
||||||
|
struct fwnode_handle *(*graph_get_remote_endpoint)(const struct fwnode_handle *fwnode);
|
||||||
|
struct fwnode_handle *(*graph_get_port_parent)(struct fwnode_handle *fwnode);
|
||||||
|
int (*graph_parse_endpoint)(const struct fwnode_handle *fwnode,
|
||||||
|
struct fwnode_endpoint *endpoint);
|
||||||
|
int (*add_links)(struct fwnode_handle *fwnode);
|
||||||
|
};
|
||||||
|
|
||||||
|
#define fwnode_has_op(fwnode, op) \
|
||||||
|
((fwnode) && (fwnode)->ops && (fwnode)->ops->op)
|
||||||
|
#define fwnode_call_int_op(fwnode, op, ...) \
|
||||||
|
(fwnode ? (fwnode_has_op(fwnode, op) ? (fwnode)->ops->op(fwnode, ##__VA_ARGS__) : -ENXIO) : -EINVAL)
|
||||||
|
|
||||||
|
#define fwnode_call_bool_op(fwnode, op, ...) \
|
||||||
|
(fwnode_has_op(fwnode, op) ? (fwnode)->ops->op(fwnode, ##__VA_ARGS__) : false)
|
||||||
|
|
||||||
|
#define fwnode_call_ptr_op(fwnode, op, ...) \
|
||||||
|
(fwnode_has_op(fwnode, op) ? (fwnode)->ops->op(fwnode, ##__VA_ARGS__) : NULL)
|
||||||
|
#define fwnode_call_void_op(fwnode, op, ...) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
if (fwnode_has_op(fwnode, op)) \
|
||||||
|
(fwnode)->ops->op(fwnode, ##__VA_ARGS__); \
|
||||||
|
} while (false)
|
||||||
|
|
||||||
|
#define get_dev_from_fwnode(fwnode) ((fwnode)->dev)
|
||||||
|
|
||||||
|
static inline void fwnode_init(struct fwnode_handle *fwnode,
|
||||||
|
const struct fwnode_operations *ops)
|
||||||
|
{
|
||||||
|
fwnode->ops = ops;
|
||||||
|
rt_list_init(&fwnode->consumers);
|
||||||
|
rt_list_init(&fwnode->suppliers);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void fwnode_dev_initialized(struct fwnode_handle *fwnode,
|
||||||
|
bool initialized)
|
||||||
|
{
|
||||||
|
if (!fwnode)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (initialized)
|
||||||
|
fwnode->flags |= FWNODE_FLAG_INITIALIZED;
|
||||||
|
else
|
||||||
|
fwnode->flags &= ~FWNODE_FLAG_INITIALIZED;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //__DTB_FWNODE_H__
|
|
@ -10,6 +10,10 @@
|
||||||
#include <rtthread.h>
|
#include <rtthread.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#ifdef RT_USING_FDT_FWNODE
|
||||||
|
#include "dtb_fwnode.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
//#define RT_DTB_DEBUG
|
//#define RT_DTB_DEBUG
|
||||||
#ifdef RT_DTB_DEBUG
|
#ifdef RT_DTB_DEBUG
|
||||||
#define debug(fmt, args...) rt_kprintf(fmt, ##args)
|
#define debug(fmt, args...) rt_kprintf(fmt, ##args)
|
||||||
|
@ -17,9 +21,9 @@
|
||||||
#define debug(fmt, args...)
|
#define debug(fmt, args...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ERR_PTR(err) ((void *)((long)(err)))
|
#define DTB_ERR_PTR(err) ((void *)((long)(err)))
|
||||||
#define PTR_ERR(ptr) ((long)(ptr))
|
#define DTB_PTR_ERR(ptr) ((long)(ptr))
|
||||||
#define IS_ERR(ptr) ((unsigned long)(ptr) > (unsigned long)(-1000))
|
#define DTB_IS_ERR(ptr) ((unsigned long)(ptr) > (unsigned long)(-1000))
|
||||||
|
|
||||||
#define DEV_ROOT_NODE_ADDR_CELLS_DEFAULT 2
|
#define DEV_ROOT_NODE_ADDR_CELLS_DEFAULT 2
|
||||||
#define DEV_ROOT_NODE_SIZE_CELLS_DEFAULT 1
|
#define DEV_ROOT_NODE_SIZE_CELLS_DEFAULT 1
|
||||||
|
@ -71,7 +75,10 @@ struct dtb_node
|
||||||
const char *path;
|
const char *path;
|
||||||
phandle handle;
|
phandle handle;
|
||||||
int level;
|
int level;
|
||||||
|
#ifdef RT_USING_FDT_FWNODE
|
||||||
|
struct fwnode_handle fwnode;
|
||||||
|
unsigned long _flags;
|
||||||
|
#endif
|
||||||
struct dtb_property *properties;
|
struct dtb_property *properties;
|
||||||
struct dtb_node *parent;
|
struct dtb_node *parent;
|
||||||
struct dtb_node *child;
|
struct dtb_node *child;
|
||||||
|
@ -382,4 +389,12 @@ int dtb_node_irq_count(struct dtb_node *dev);
|
||||||
dtb_node_valid(node); \
|
dtb_node_valid(node); \
|
||||||
node = dtb_node_next_subnode(node))
|
node = dtb_node_next_subnode(node))
|
||||||
|
|
||||||
|
#ifdef RT_USING_FDT_FWNODE
|
||||||
|
extern const struct fwnode_operations of_fwnode_ops;
|
||||||
|
static inline void dtb_fwnode_init(struct dtb_node *node)
|
||||||
|
{
|
||||||
|
fwnode_init(&node->fwnode, &of_fwnode_ops);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* RT_FDT_H__ */
|
#endif /* RT_FDT_H__ */
|
|
@ -28,11 +28,11 @@ static void *dtb_node_find_property_value_of_size(const struct dtb_node *dn,
|
||||||
struct dtb_property *prop = dtb_node_get_dtb_node_property(dn, propname, NULL);
|
struct dtb_property *prop = dtb_node_get_dtb_node_property(dn, propname, NULL);
|
||||||
|
|
||||||
if (!prop)
|
if (!prop)
|
||||||
return ERR_PTR(-EINVAL);
|
return DTB_ERR_PTR(-EINVAL);
|
||||||
if (!prop->value)
|
if (!prop->value)
|
||||||
return ERR_PTR(-ENODATA);
|
return DTB_ERR_PTR(-ENODATA);
|
||||||
if (len > prop->size)
|
if (len > prop->size)
|
||||||
return ERR_PTR(-EOVERFLOW);
|
return DTB_ERR_PTR(-EOVERFLOW);
|
||||||
return prop->value;
|
return prop->value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,10 +44,10 @@ int dtb_node_read_u32(const struct dtb_node *dn, const char *propname, uint32_t
|
||||||
if (!dn)
|
if (!dn)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
val = dtb_node_find_property_value_of_size(dn, propname, sizeof(*outp));
|
val = dtb_node_find_property_value_of_size(dn, propname, sizeof(*outp));
|
||||||
if (IS_ERR(val))
|
if (DTB_IS_ERR(val))
|
||||||
{
|
{
|
||||||
debug("(not found)\n");
|
debug("(not found)\n");
|
||||||
return PTR_ERR(val);
|
return DTB_PTR_ERR(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
*outp = fdt32_to_cpu(*val);
|
*outp = fdt32_to_cpu(*val);
|
||||||
|
@ -72,8 +72,8 @@ int dtb_node_read_u32_array(const struct dtb_node *dn, const char *propname,
|
||||||
val = dtb_node_find_property_value_of_size(dn, propname,
|
val = dtb_node_find_property_value_of_size(dn, propname,
|
||||||
sz * sizeof(*out_values));
|
sz * sizeof(*out_values));
|
||||||
|
|
||||||
if (IS_ERR(val))
|
if (DTB_IS_ERR(val))
|
||||||
return PTR_ERR(val);
|
return DTB_PTR_ERR(val);
|
||||||
|
|
||||||
debug("size %zd, val:%d\n", sz, *val);
|
debug("size %zd, val:%d\n", sz, *val);
|
||||||
while (sz--)
|
while (sz--)
|
||||||
|
@ -110,10 +110,10 @@ int dtb_node_read_u32_index(const struct dtb_node *dn, const char *propname,
|
||||||
|
|
||||||
val = dtb_node_find_property_value_of_size(dn, propname,
|
val = dtb_node_find_property_value_of_size(dn, propname,
|
||||||
sizeof(*outp) * (index + 1));
|
sizeof(*outp) * (index + 1));
|
||||||
if (IS_ERR(val))
|
if (DTB_IS_ERR(val))
|
||||||
{
|
{
|
||||||
debug("(not found)\n");
|
debug("(not found)\n");
|
||||||
return PTR_ERR(val);
|
return DTB_PTR_ERR(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
*outp = fdt32_to_cpu(val[index]);
|
*outp = fdt32_to_cpu(val[index]);
|
||||||
|
@ -130,10 +130,10 @@ int dtb_node_read_u64(const struct dtb_node *dn, const char *propname, uint64_t
|
||||||
if (!dn)
|
if (!dn)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
val = dtb_node_find_property_value_of_size(dn, propname, sizeof(*outp));
|
val = dtb_node_find_property_value_of_size(dn, propname, sizeof(*outp));
|
||||||
if (IS_ERR(val))
|
if (DTB_IS_ERR(val))
|
||||||
{
|
{
|
||||||
debug("(not found)\n");
|
debug("(not found)\n");
|
||||||
return PTR_ERR(val);
|
return DTB_PTR_ERR(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
*outp = fdt64_to_cpu(*val);
|
*outp = fdt64_to_cpu(*val);
|
|
@ -69,6 +69,10 @@ static int _dtb_node_get_dtb_nodes_list(struct dtb_node *dtb_node_head, struct d
|
||||||
int pathname_sz;
|
int pathname_sz;
|
||||||
int node_name_sz;
|
int node_name_sz;
|
||||||
|
|
||||||
|
#ifdef RT_USING_FDT_FWNODE
|
||||||
|
dtb_fwnode_init(dtb_node_head);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* caller alrealy checked current_fdt */
|
/* caller alrealy checked current_fdt */
|
||||||
if ((root_off = fdt_path_offset(current_fdt, pathname)) >= 0)
|
if ((root_off = fdt_path_offset(current_fdt, pathname)) >= 0)
|
||||||
{
|
{
|
||||||
|
@ -113,7 +117,9 @@ static int _dtb_node_get_dtb_nodes_list(struct dtb_node *dtb_node_head, struct d
|
||||||
{
|
{
|
||||||
return FDT_RET_NO_MEMORY;
|
return FDT_RET_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
#ifdef RT_USING_FDT_FWNODE
|
||||||
|
dtb_fwnode_init(dtb_node);
|
||||||
|
#endif
|
||||||
fdt_exec_status = _dtb_node_get_dtb_properties_list(dtb_node->properties, node_off);
|
fdt_exec_status = _dtb_node_get_dtb_properties_list(dtb_node->properties, node_off);
|
||||||
if (fdt_exec_status == FDT_RET_GET_EMPTY)
|
if (fdt_exec_status == FDT_RET_GET_EMPTY)
|
||||||
{
|
{
|
|
@ -0,0 +1,200 @@
|
||||||
|
menu "Using USB legacy version"
|
||||||
|
config RT_USING_USB
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
|
||||||
|
config RT_USING_USB_HOST
|
||||||
|
bool "Using USB host"
|
||||||
|
default n
|
||||||
|
select RT_USING_USB
|
||||||
|
|
||||||
|
if RT_USING_USB_HOST
|
||||||
|
config RT_USBH_MSTORAGE
|
||||||
|
bool "Enable Udisk Drivers"
|
||||||
|
default n
|
||||||
|
if RT_USBH_MSTORAGE
|
||||||
|
config UDISK_MOUNTPOINT
|
||||||
|
string "Udisk mount dir"
|
||||||
|
default "/"
|
||||||
|
endif
|
||||||
|
config RT_USBH_HID
|
||||||
|
bool "Enable HID Drivers"
|
||||||
|
default n
|
||||||
|
if RT_USBH_HID
|
||||||
|
config RT_USBH_HID_MOUSE
|
||||||
|
bool "Enable HID mouse protocol"
|
||||||
|
default n
|
||||||
|
config RT_USBH_HID_KEYBOARD
|
||||||
|
bool "Enable HID keyboard protocol"
|
||||||
|
default n
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
config RT_USING_USB_DEVICE
|
||||||
|
bool "Using USB device"
|
||||||
|
default n
|
||||||
|
select RT_USING_USB
|
||||||
|
|
||||||
|
if RT_USING_USB_DEVICE || RT_USING_USB_HOST
|
||||||
|
config RT_USBD_THREAD_STACK_SZ
|
||||||
|
int "usb thread stack size"
|
||||||
|
default 4096
|
||||||
|
endif
|
||||||
|
if RT_USING_USB_DEVICE
|
||||||
|
config USB_VENDOR_ID
|
||||||
|
hex "USB Vendor ID"
|
||||||
|
default 0x0FFE
|
||||||
|
config USB_PRODUCT_ID
|
||||||
|
hex "USB Product ID"
|
||||||
|
default 0x0001
|
||||||
|
|
||||||
|
config RT_USB_DEVICE_COMPOSITE
|
||||||
|
bool "Enable composite device"
|
||||||
|
default n
|
||||||
|
choice
|
||||||
|
prompt "Device type"
|
||||||
|
default _RT_USB_DEVICE_NONE
|
||||||
|
depends on !RT_USB_DEVICE_COMPOSITE
|
||||||
|
config _RT_USB_DEVICE_NONE
|
||||||
|
bool "Using custom class by register interface"
|
||||||
|
select RT_USB_DEVICE_NONE
|
||||||
|
config _RT_USB_DEVICE_CDC
|
||||||
|
bool "Enable to use device as CDC device"
|
||||||
|
select RT_USB_DEVICE_CDC
|
||||||
|
config _RT_USB_DEVICE_MSTORAGE
|
||||||
|
bool "Enable to use device as Mass Storage device"
|
||||||
|
select RT_USB_DEVICE_MSTORAGE
|
||||||
|
config _RT_USB_DEVICE_HID
|
||||||
|
bool "Enable to use device as HID device"
|
||||||
|
select RT_USB_DEVICE_HID
|
||||||
|
config _RT_USB_DEVICE_RNDIS
|
||||||
|
bool "Enable to use device as rndis device"
|
||||||
|
select RT_USB_DEVICE_RNDIS
|
||||||
|
depends on RT_USING_LWIP
|
||||||
|
config _RT_USB_DEVICE_ECM
|
||||||
|
bool "Enable to use device as ecm device"
|
||||||
|
select RT_USB_DEVICE_ECM
|
||||||
|
depends on RT_USING_LWIP
|
||||||
|
config _RT_USB_DEVICE_WINUSB
|
||||||
|
bool "Enable to use device as winusb device"
|
||||||
|
select RT_USB_DEVICE_WINUSB
|
||||||
|
config _RT_USB_DEVICE_AUDIO
|
||||||
|
bool "Enable to use device as audio device"
|
||||||
|
select RT_USB_DEVICE_AUDIO
|
||||||
|
endchoice
|
||||||
|
if RT_USB_DEVICE_COMPOSITE
|
||||||
|
config RT_USB_DEVICE_CDC
|
||||||
|
bool "Enable to use device as CDC device"
|
||||||
|
default n
|
||||||
|
config RT_USB_DEVICE_NONE
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
config RT_USB_DEVICE_MSTORAGE
|
||||||
|
bool "Enable to use device as Mass Storage device"
|
||||||
|
default n
|
||||||
|
config RT_USB_DEVICE_HID
|
||||||
|
bool "Enable to use device as HID device"
|
||||||
|
default n
|
||||||
|
config RT_USB_DEVICE_RNDIS
|
||||||
|
bool "Enable to use device as rndis device"
|
||||||
|
default n
|
||||||
|
depends on RT_USING_LWIP
|
||||||
|
config RT_USB_DEVICE_ECM
|
||||||
|
bool "Enable to use device as ecm device"
|
||||||
|
default n
|
||||||
|
depends on RT_USING_LWIP
|
||||||
|
config RT_USB_DEVICE_WINUSB
|
||||||
|
bool "Enable to use device as winusb device"
|
||||||
|
default n
|
||||||
|
config RT_USB_DEVICE_AUDIO
|
||||||
|
bool "Enable to use device as audio device"
|
||||||
|
default n
|
||||||
|
endif
|
||||||
|
if RT_USB_DEVICE_CDC
|
||||||
|
config RT_VCOM_TASK_STK_SIZE
|
||||||
|
int "virtual com thread stack size"
|
||||||
|
default 512
|
||||||
|
config RT_CDC_RX_BUFSIZE
|
||||||
|
int "virtual com rx buffer size"
|
||||||
|
default 128
|
||||||
|
config RT_VCOM_TX_USE_DMA
|
||||||
|
bool "Enable to use dma for vcom tx"
|
||||||
|
default n
|
||||||
|
config RT_VCOM_SERNO
|
||||||
|
string "serial number of virtual com"
|
||||||
|
default "32021919830108"
|
||||||
|
config RT_VCOM_SER_LEN
|
||||||
|
int "serial number length of virtual com"
|
||||||
|
default 14
|
||||||
|
config RT_VCOM_TX_TIMEOUT
|
||||||
|
int "tx timeout(ticks) of virtual com"
|
||||||
|
default 1000
|
||||||
|
endif
|
||||||
|
if RT_USB_DEVICE_WINUSB
|
||||||
|
config RT_WINUSB_GUID
|
||||||
|
string "Guid for winusb"
|
||||||
|
default "{6860DC3C-C05F-4807-8807-1CA861CC1D66}"
|
||||||
|
endif
|
||||||
|
if RT_USB_DEVICE_MSTORAGE
|
||||||
|
config RT_USB_MSTORAGE_DISK_NAME
|
||||||
|
string "msc class disk name"
|
||||||
|
default "flash0"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if RT_USB_DEVICE_RNDIS
|
||||||
|
config RNDIS_DELAY_LINK_UP
|
||||||
|
bool "Delay linkup media connection"
|
||||||
|
select RT_USING_TIMER_SOFT
|
||||||
|
default n
|
||||||
|
endif
|
||||||
|
|
||||||
|
if RT_USB_DEVICE_HID
|
||||||
|
config RT_USB_DEVICE_HID_KEYBOARD
|
||||||
|
bool "Use to HID device as Keyboard"
|
||||||
|
default n
|
||||||
|
if RT_USB_DEVICE_HID_KEYBOARD
|
||||||
|
config RT_USB_DEVICE_HID_KEYBOARD_NUMBER
|
||||||
|
int "Number of Keyboard(max 3)"
|
||||||
|
default 1
|
||||||
|
range 1 3
|
||||||
|
endif
|
||||||
|
config RT_USB_DEVICE_HID_MOUSE
|
||||||
|
bool "Use to HID device as Mouse"
|
||||||
|
default n
|
||||||
|
config RT_USB_DEVICE_HID_GENERAL
|
||||||
|
bool "Use to HID device as General HID device"
|
||||||
|
default y
|
||||||
|
if RT_USB_DEVICE_HID_GENERAL
|
||||||
|
config RT_USB_DEVICE_HID_GENERAL_OUT_REPORT_LENGTH
|
||||||
|
int "General HID device out report length"
|
||||||
|
default 63
|
||||||
|
range 0 63
|
||||||
|
|
||||||
|
config RT_USB_DEVICE_HID_GENERAL_IN_REPORT_LENGTH
|
||||||
|
int "General HID device in report length"
|
||||||
|
default 63
|
||||||
|
range 0 63
|
||||||
|
endif
|
||||||
|
config RT_USB_DEVICE_HID_MEDIA
|
||||||
|
bool "Use to HID device as media keyboard"
|
||||||
|
default y
|
||||||
|
endif
|
||||||
|
if RT_USB_DEVICE_AUDIO
|
||||||
|
config RT_USB_DEVICE_AUDIO_MIC
|
||||||
|
bool "Use usb mic device as audio device"
|
||||||
|
default n
|
||||||
|
if RT_USB_DEVICE_AUDIO_MIC
|
||||||
|
config RT_USBD_MIC_DEVICE_NAME
|
||||||
|
string "audio mic device name"
|
||||||
|
default "mic0"
|
||||||
|
endif
|
||||||
|
config RT_USB_DEVICE_AUDIO_SPEAKER
|
||||||
|
bool "Use usb speaker device as audio device"
|
||||||
|
default n
|
||||||
|
if RT_USB_DEVICE_AUDIO_SPEAKER
|
||||||
|
config RT_USBD_SPEAKER_DEVICE_NAME
|
||||||
|
string "audio speaker device name"
|
||||||
|
default "sound0"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endmenu
|
Loading…
Reference in New Issue