Generic USB Properties

Optional properties:
 - maximum-speed: tells USB controllers we want to work up to a certain
			speed. Valid arguments are "super-speed-plus",
			"super-speed", "high-speed", "full-speed" and
			"low-speed". In case this isn't passed via DT, USB
			controllers should default to their maximum HW
			capability.
 - dr_mode: tells Dual-Role USB controllers that we want to work on a
			particular mode. Valid arguments are "host",
			"peripheral" and "otg". In case this attribute isn't
			passed via DT, USB DRD controllers should default to
			OTG.
 - phy_type: tells USB controllers that we want to configure the core to support
			a UTMI+ PHY with an 8- or 16-bit interface if UTMI+ is
			selected. Valid arguments are "utmi" and "utmi_wide".
			In case this isn't passed via DT, USB controllers should
			default to HW capability.
 - otg-rev: tells usb driver the release number of the OTG and EH supplement
			with which the device and its descriptors are compliant,
			in binary-coded decimal (i.e. 2.0 is 0200H). This
			property is used if any real OTG features(HNP/SRP/ADP)
			is enabled, if ADP is required, otg-rev should be
			0x0200 or above.
 - companion: phandle of a companion
 - hnp-disable: tells OTG controllers we want to disable OTG HNP, normally HNP
			is the basic function of real OTG except you want it
			to be a srp-capable only B device.
 - srp-disable: tells OTG controllers we want to disable OTG SRP, SRP is
			optional for OTG device.
 - adp-disable: tells OTG controllers we want to disable OTG ADP, ADP is
			optional for OTG device.
 - usb-role-switch: boolean, indicates that the device is capable of assigning
			the USB data role (USB host or USB device) for a given
			USB connector, such as Type-C, Type-B(micro).
			see connector/usb-connector.yaml.
 - role-switch-default-mode: indicating if usb-role-switch is enabled, the
			device default operation mode of controller while usb
			role is USB_ROLE_NONE. Valid arguments are "host" and
			"peripheral". Defaults to "peripheral" if not
			specified.


This is an attribute to a USB controller such as:

dwc3@4a030000 {
	compatible = "synopsys,dwc3";
	reg = <0x4a030000 0xcfff>;
	interrupts = <0 92 4>
	usb-phy = <&usb2_phy>, <&usb3,phy>;
	maximum-speed = "super-speed";
	dr_mode = "otg";
	phy_type = "utmi_wide";
	otg-rev = <0x0200>;
	adp-disable;
};
