mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-31 00:17:44 +00:00
usb: gadget: aspeed: allow to set device IDs in device tree
The patch overrides idVendor, idProduct and bcdDevice fields in vhub Device Descriptor if according device tree properties are defined. Signed-off-by: Tao Ren <rentao.bupt@gmail.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
This commit is contained in:
parent
30d2617fd7
commit
2e596d8843
1 changed files with 21 additions and 0 deletions
|
@ -887,6 +887,26 @@ void ast_vhub_hub_reset(struct ast_vhub *vhub)
|
|||
writel(0, vhub->regs + AST_VHUB_EP1_STS_CHG);
|
||||
}
|
||||
|
||||
static void ast_vhub_of_parse_dev_desc(struct ast_vhub *vhub,
|
||||
const struct device_node *vhub_np)
|
||||
{
|
||||
u16 id;
|
||||
u32 data;
|
||||
|
||||
if (!of_property_read_u32(vhub_np, "vhub-vendor-id", &data)) {
|
||||
id = (u16)data;
|
||||
vhub->vhub_dev_desc.idVendor = cpu_to_le16(id);
|
||||
}
|
||||
if (!of_property_read_u32(vhub_np, "vhub-product-id", &data)) {
|
||||
id = (u16)data;
|
||||
vhub->vhub_dev_desc.idProduct = cpu_to_le16(id);
|
||||
}
|
||||
if (!of_property_read_u32(vhub_np, "vhub-device-revision", &data)) {
|
||||
id = (u16)data;
|
||||
vhub->vhub_dev_desc.bcdDevice = cpu_to_le16(id);
|
||||
}
|
||||
}
|
||||
|
||||
static struct usb_gadget_string_container*
|
||||
ast_vhub_str_container_alloc(struct ast_vhub *vhub)
|
||||
{
|
||||
|
@ -1000,6 +1020,7 @@ static int ast_vhub_init_desc(struct ast_vhub *vhub)
|
|||
/* Initialize vhub Device Descriptor. */
|
||||
memcpy(&vhub->vhub_dev_desc, &ast_vhub_dev_desc,
|
||||
sizeof(vhub->vhub_dev_desc));
|
||||
ast_vhub_of_parse_dev_desc(vhub, vhub_np);
|
||||
|
||||
/* Initialize vhub Configuration Descriptor. */
|
||||
memcpy(&vhub->vhub_conf_desc, &ast_vhub_conf_desc,
|
||||
|
|
Loading…
Reference in a new issue