Here's an example of what I'm trying to get at-- take 
a node from a FSL device tree.  The ideas I've heard
for expressing the class are like this--

#1  don't express any class at all:

  [EMAIL PROTECTED] {
        compatible = "fsl,ucc_geth";
        model = "UCC";
        device-id = <3>;
        reg = <2200 200>;
        interrupts = <22>;
        interrupt-parent = < &qeic >;
        mac-address = [ 00 00 00 00 00 00 ];
        local-mac-address = [ 00 00 00 00 00 00 ];
        rx-clock = <19>;
        tx-clock = <1a>;
        phy-handle = < &phy3 >;
        pio-handle = < &pio3 >;
  

  > This is bad IMHO because the human reader has to
  > infer the class of device.  Can the human reader
  > tell if it implements a standardized binding or
  > not??

#2 use device_type

  [EMAIL PROTECTED] {
        device_type = "network";
        compatible = "fsl,ucc_geth";
        model = "UCC";
        device-id = <3>;
        reg = <2200 200>;
        interrupts = <22>;
        interrupt-parent = < &qeic >;
        mac-address = [ 00 00 00 00 00 00 ];
        local-mac-address = [ 00 00 00 00 00 00 ];
        rx-clock = <19>;
        tx-clock = <1a>;
        phy-handle = < &phy3 >;
        pio-handle = < &pio3 >;
  };

  > This is better...I can tell it implments the network
  > binding.   The problem is the past abuse and OF
  > connotations.

#3 use a new "class" property

  [EMAIL PROTECTED] {
        class = "network";
        compatible = "fsl,ucc_geth";
        model = "UCC";
        device-id = <3>;
        reg = <2200 200>;
        interrupts = <22>;
        interrupt-parent = < &qeic >;
        mac-address = [ 00 00 00 00 00 00 ];
        local-mac-address = [ 00 00 00 00 00 00 ];
        rx-clock = <19>;
        tx-clock = <1a>;
        phy-handle = < &phy3 >;
        pio-handle = < &pio3 >;
  };

  > This is good...I can tell it implments the "network"
  > binding.   There is no association with the abused
  > OF device_type.

#4 use "compatible"

  [EMAIL PROTECTED] {
        compatible = "fsl,ucc_geth","[official spec],network";
        model = "UCC";
        device-id = <3>;
        reg = <2200 200>;
        interrupts = <22>;
        interrupt-parent = < &qeic >;
        mac-address = [ 00 00 00 00 00 00 ];
        local-mac-address = [ 00 00 00 00 00 00 ];
        rx-clock = <19>;
        tx-clock = <1a>;
        phy-handle = < &phy3 >;
        pio-handle = < &pio3 >;
  };

  > I don't like this...we are overloading "compatible" with
  > stuff that is not specifying a programming interface.  compatible
  > is supposed to be specifying a programming interface which
  > the device complies to.


Stuart
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to