mirror of
https://github.com/torvalds/linux.git
synced 2024-12-24 11:51:27 +00:00
915974c34e
The initial versions of the devicetree enablement patches for ehci-platform used "ehci-platform" as compatible string. However this was disliked by various reviewers because the platform bus is a Linux invention and devicetree is supposed to be OS agnostic. After much discussion I gave up, added a: "depends on !PPC_OF" to Kconfig to avoid a known conflict with PPC-OF platforms and went with the generic usb-ehci as requested. In retro-spect I should have chosen something different, the dts files for many existing boards already claim to be compatible with "usb-ehci", ie they have: compatible = "ti,ehci-omap", "usb-ehci"; In theory this should not be a problem since the "ti,ehci-omap" entry takes presedence, but in practice using a conflicting compatible string is an issue, because it makes which driver gets used depend on driver registration order. This patch changes the compatible string claimed by ehci-platform to "generic-ehci", avoiding the driver registration / module loading ordering problems, and removes the "depends on !PPC_OF" workaround. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Tested-by: Kevin Hilman <khilman@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
USB EHCI controllers
|
|
|
|
Required properties:
|
|
- compatible : should be "generic-ehci".
|
|
- reg : should contain at least address and length of the standard EHCI
|
|
register set for the device. Optional platform-dependent registers
|
|
(debug-port or other) can be also specified here, but only after
|
|
definition of standard EHCI registers.
|
|
- interrupts : one EHCI interrupt should be described here.
|
|
|
|
Optional properties:
|
|
- big-endian-regs : boolean, set this for hcds with big-endian registers
|
|
- big-endian-desc : boolean, set this for hcds with big-endian descriptors
|
|
- big-endian : boolean, for hcds with big-endian-regs + big-endian-desc
|
|
- clocks : a list of phandle + clock specifier pairs
|
|
- phys : phandle + phy specifier pair
|
|
- phy-names : "usb"
|
|
|
|
Example (Sequoia 440EPx):
|
|
ehci@e0000300 {
|
|
compatible = "ibm,usb-ehci-440epx", "usb-ehci";
|
|
interrupt-parent = <&UIC0>;
|
|
interrupts = <1a 4>;
|
|
reg = <0 e0000300 90 0 e0000390 70>;
|
|
big-endian;
|
|
};
|
|
|
|
Example (Allwinner sun4i A10 SoC):
|
|
ehci0: usb@01c14000 {
|
|
compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
|
|
reg = <0x01c14000 0x100>;
|
|
interrupts = <39>;
|
|
clocks = <&ahb_gates 1>;
|
|
phys = <&usbphy 1>;
|
|
phy-names = "usb";
|
|
};
|