Skip to content
  • Johan Hovold's avatar
    greybus: core: add module abstraction · b15d97d7
    Johan Hovold authored
    
    
    Add Greybus module abstraction that will be used to implement controlled
    module removal (eject) and represent module geometry.
    
    Greybus module devices correspond to physical modules and have one or
    more interfaces. Modules have an id that is identical to the id of their
    primary interface, which in turn is the interface with lowest numbered
    id. The module name is constructed from the bus and module id:
    
            <bus_id>-<module_id>
    
    Interfaces, bundles, and control devices are consequently renamed as
    
            <bus_id>-<module_id>.<interface_id>
            <bus_id>-<module_id>.<interface_id>.<bundle_id>
            <bus_id>-<module_id>.<interface_id>.ctrl
    
    As before, interface ids (and therefore in a sense now also module ids)
    correspond to physical interface positions on the frame.
    
    Modules have the following attributes:
    
            module_id
            num_interfaces
    
    where module_id is the id of the module and num_interface the number of
    interfaces the module has.
    
    Note that until SVC module-size detection has been implemented, all
    interfaces are considered to be part of 1x2 modules. Specifically, the
    two interfaces of a 2x2 module will be presented as two 1x2 modules for
    now.
    
    Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
    b15d97d7