// SPDX-License-Identifier: GPL-2.0 /* * Wireless USB - Cable Based Association * * Copyright (C) 2006 Intel Corporation * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 as published by the Free Software Foundation. * */ #ifndef __LINUX_USB_ASSOCIATION_H #define __LINUX_USB_ASSOCIATION_H /* * Association attributes * * Association Models Supplement to WUSB 1.0 T[3-1] * * Each field in the structures has it's ID, it's length and then the * value. This is the actual definition of the field's ID and its * length. */ struct wusb_am_attr { __u8 id; __u8 len; }; /* Different fields defined by the spec */ #define WUSB_AR_AssociationTypeId { .id = cpu_to_le16(0x0000), .len = cpu_to_le16(2) } #define WUSB_AR_AssociationSubTypeId { .id = cpu_to_le16(0x0001), .len = cpu_to_le16(2) } #define WUSB_AR_Length { .id = cpu_to_le16(0x0002), .len = cpu_to_le16(4) } #define WUSB_AR_AssociationStatus { .id = cpu_to_le16(0x0004), .len = cpu_to_le16(4) } #define WUSB_AR_LangID { .id = cpu_to_le16(0x0008), .len = cpu_to_le16(2) } #define WUSB_AR_DeviceFriendlyName { .id = cpu_to_le16(0x000b), .len = cpu_to_le16(64) } /* max */ #define WUSB_AR_HostFriendlyName { .id = cpu_to_le16(0x000c), .len = cpu_to_le16(64) } /* max */ #define WUSB_AR_CHID { .id = cpu_to_le16(0x1000), .len = cpu_to_le16(16) } #define WUSB_AR_CDID { .id = cpu_to_le16(0x1001), .len = cpu_to_le16(16) } #define WUSB_AR_ConnectionContext { .id = cpu_to_le16(0x1002), .len = cpu_to_le16(48) } #define WUSB_AR_BandGroups { .id = cpu_to_le16(0x1004), .len = cpu_to_le16(2) } /* CBAF Control Requests (AMS1.0[T4-1] */ enum { CBAF_REQ_GET_ASSOCIATION_INFORMATION = 0x01, CBAF_REQ_GET_ASSOCIATION_REQUEST, CBAF_REQ_SET_ASSOCIATION_RESPONSE }; /* * CBAF USB-interface defitions * * No altsettings, one optional interrupt endpoint. */ enum { CBAF_IFACECLASS = 0xef, CBAF_IFACESUBCLASS = 0x03, CBAF_IFACEPROTOCOL = 0x01, }; /* Association Information (AMS1.0[T4-3]) */ struct wusb_cbaf_assoc_info { __le16 Length; __u8 NumAssociationRequests; __le16 Flags; __u8 AssociationRequestsArray[]; } __attribute__((packed)); /* Association Request (AMS1.0[T4-4]) */ struct wusb_cbaf_assoc_request { __u8 AssociationDataIndex; __u8 Reserved; __le16 AssociationTypeId; __le16 AssociationSubTypeId; __le32 AssociationTypeInfoSize; } __attribute__((packed)); enum { AR_TYPE_WUSB = 0x0001, AR_TYPE_WUSB_RETRIEVE_HOST_INFO = 0x0000, AR_TYPE_WUSB_ASSOCIATE = 0x0001, }; /* Association Attribute header (AMS1.0[3.8]) */ struct wusb_cbaf_attr_hdr { __le16 id; __le16 len; } __attribute__((packed)); /* Host Info (AMS1.0[T4-7]) (yeah, more headers and fields...) */ struct wusb_cbaf_host_info { struct wusb_cbaf_attr_hdr AssociationTypeId_hdr; __le16 AssociationTypeId; struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr; __le16 AssociationSubTypeId; struct wusb_cbaf_attr_hdr CHID_hdr; struct wusb_ckhdid CHID; struct wusb_cbaf_attr_hdr LangID_hdr; __le16 LangID; struct wusb_cbaf_attr_hdr HostFriendlyName_hdr; __u8 HostFriendlyName[]; } __attribute__((packed)); /* Device Info (AMS1.0[T4-8]) * * I still don't get this tag'n'header stuff for each goddamn * field... */ struct wusb_cbaf_device_info { struct wusb_cbaf_attr_hdr Length_hdr; __le32 Length; struct wusb_cbaf_attr_hdr CDID_hdr; struct wusb_ckhdid CDID; struct wusb_cbaf_attr_hdr BandGroups_hdr; __le16 BandGroups; struct wusb_cbaf_attr_hdr LangID_hdr; __le16 LangID; struct wusb_cbaf_attr_hdr DeviceFriendlyName_hdr; __u8 DeviceFriendlyName[]; } __attribute__((packed)); /* Connection Context; CC_DATA - Success case (AMS1.0[T4-9]) */ struct wusb_cbaf_cc_data { struct wusb_cbaf_attr_hdr AssociationTypeId_hdr; __le16 AssociationTypeId; struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr; __le16 AssociationSubTypeId; struct wusb_cbaf_attr_hdr Length_hdr; __le32 Length; struct wusb_cbaf_attr_hdr ConnectionContext_hdr; struct wusb_ckhdid CHID; struct wusb_ckhdid CDID; struct wusb_ckhdid CK; struct wusb_cbaf_attr_hdr BandGroups_hdr; __le16 BandGroups; } __attribute__((packed)); /* CC_DATA - Failure case (AMS1.0[T4-10]) */ struct wusb_cbaf_cc_data_fail { struct wusb_cbaf_attr_hdr AssociationTypeId_hdr; __le16 AssociationTypeId; struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr; __le16 AssociationSubTypeId; struct wusb_cbaf_attr_hdr Length_hdr; __le16 Length; struct wusb_cbaf_attr_hdr AssociationStatus_hdr; __u32 AssociationStatus; } __attribute__((packed)); #endif /* __LINUX_USB_ASSOCIATION_H */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
association.h | File | 4.59 KB | 0644 |
|
atmel_usba_udc.h | File | 421 B | 0644 |
|
audio-v2.h | File | 13.17 KB | 0644 |
|
audio.h | File | 1.23 KB | 0644 |
|
c67x00.h | File | 1.82 KB | 0644 |
|
cdc-wdm.h | File | 651 B | 0644 |
|
cdc.h | File | 1.48 KB | 0644 |
|
cdc_ncm.h | File | 5.56 KB | 0644 |
|
ch9.h | File | 2.5 KB | 0644 |
|
chipidea.h | File | 2.77 KB | 0644 |
|
composite.h | File | 25.17 KB | 0644 |
|
ehci-dbgp.h | File | 2.05 KB | 0644 |
|
ehci_def.h | File | 7.89 KB | 0644 |
|
ehci_pdriver.h | File | 2.31 KB | 0644 |
|
ezusb.h | File | 286 B | 0644 |
|
functionfs.h | File | 151 B | 0644 |
|
g_hid.h | File | 1.13 KB | 0644 |
|
gadget.h | File | 32.65 KB | 0644 |
|
gadget_configfs.h | File | 2.94 KB | 0644 |
|
gpio_vbus.h | File | 1.13 KB | 0644 |
|
hcd.h | File | 25.93 KB | 0644 |
|
input.h | File | 716 B | 0644 |
|
iowarrior.h | File | 1.34 KB | 0644 |
|
irda.h | File | 3.76 KB | 0644 |
|
isp116x.h | File | 1.13 KB | 0644 |
|
isp1301.h | File | 2.38 KB | 0644 |
|
isp1362.h | File | 1.59 KB | 0644 |
|
isp1760.h | File | 633 B | 0644 |
|
m66592.h | File | 1.41 KB | 0644 |
|
musb-ux500.h | File | 899 B | 0644 |
|
musb.h | File | 4.59 KB | 0644 |
|
net2280.h | File | 23.55 KB | 0644 |
|
of.h | File | 1.46 KB | 0644 |
|
ohci_pdriver.h | File | 1.71 KB | 0644 |
|
otg-fsm.h | File | 8.61 KB | 0644 |
|
otg.h | File | 3.01 KB | 0644 |
|
pd.h | File | 8.98 KB | 0644 |
|
pd_bdo.h | File | 1011 B | 0644 |
|
pd_vdo.h | File | 7.58 KB | 0644 |
|
phy.h | File | 9.25 KB | 0644 |
|
phy_companion.h | File | 1.17 KB | 0644 |
|
quirks.h | File | 2.34 KB | 0644 |
|
r8a66597.h | File | 17.65 KB | 0644 |
|
renesas_usbhs.h | File | 4.76 KB | 0644 |
|
rndis_host.h | File | 5.94 KB | 0644 |
|
samsung_usb_phy.h | File | 530 B | 0644 |
|
serial.h | File | 17.12 KB | 0644 |
|
sl811.h | File | 838 B | 0644 |
|
storage.h | File | 2.58 KB | 0644 |
|
tcpm.h | File | 6.46 KB | 0644 |
|
tegra_usb_phy.h | File | 2.38 KB | 0644 |
|
tilegx.h | File | 983 B | 0644 |
|
typec.h | File | 7.04 KB | 0644 |
|
uas.h | File | 2.07 KB | 0644 |
|
ulpi.h | File | 1.99 KB | 0644 |
|
usb338x.h | File | 7.63 KB | 0644 |
|
usb_phy_generic.h | File | 892 B | 0644 |
|
usbnet.h | File | 10.01 KB | 0644 |
|
wusb-wa.h | File | 7.5 KB | 0644 |
|
wusb.h | File | 9.92 KB | 0644 |
|
xhci-dbgp.h | File | 825 B | 0644 |
|