Hi folks,

I'm writing a driver for the usb2514 USB hub chip. It supports a small feature 
set, mostly:

* Up to 7 ports, with any individual ports disabled
* Ports can be marked as hardwired
* Device may appear as a composite device
* per-port O/C GPIO outputs.

My initial though was to copy the 3503 driver, which is similar, but the fact 
that ports can be arbitrarily disabled makes me think that a better approach is 
needed.

Is there a way to specify USB ports in device-tree, similar to how hdmi ports 
are?

Rather than something messy like this:

        usb2514@2c {
                compatible = "smsc,usb2514";
                reg = <0x2c>;
                disabled-ports = <3>;
                overcurrent-gpios = <&gpio4 19 0>;   # Which port does this 
belong to?
                non-removable-ports = <1>;
                reset-gpio = <&gpio4 20 0>;
        };

I'd prefer to have something like:

        usb2514@2c {
                compatible = "smsc,usb2514";
                reset-gpio = <&gpio4 20 0>;
                reg = <0x2c>;
                usb-port@0 {
                        # No O/C sensing
                        hardwired;
                        status = "okay";
                };
                usb-port@1 {
                        overcurrent-gpio = <&gpio4 19 1>;
                        status = "okay";
                };
                usb-port@2 {
                        status = "disabled";
                };
                usb-port@3 {
                        # No O/C sensing
                        status = "okay";
                };
        };

Or would something like:


        usb2514@2c {
                compatible = "smsc,usb2514";
                reset-gpio = <&gpio4 20 0>;
                reg = <0x2c>;
                usb-port@0 {
                        # No O/C sensing
                        hard-port-no = <0>;
                        hardwired;
                        status = "okay";
                };
                usb-port@1 {
                        hard-port-no = <1>;
                        overcurrent-gpio = <&gpio4 19 1>;
                        status = "okay";
                };
                usb-port@2 {
                        hard-port-no = <3>;
                        # No O/C sensing
                        status = "okay";
                };
        };

Be better?

Whats the best way to handle this?

-Ian
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to