• B
    reset: add support for non-DT systems · 6691dffa
    Bartosz Golaszewski 提交于
    The reset framework only supports device-tree. There are some platforms
    however, which need to use it even in legacy, board-file based mode.
    
    An example of such architecture is the DaVinci family of SoCs which
    supports both device tree and legacy boot modes and we don't want to
    introduce any regressions.
    
    We're currently working on converting the platform from its hand-crafted
    clock API to using the common clock framework. Part of the overhaul will
    be representing the chip's power sleep controller's reset lines using
    the reset framework.
    
    This changeset extends the core reset code with a new reset lookup
    entry structure. It contains data allowing the reset core to associate
    reset lines with devices by comparing the dev_id and con_id strings.
    
    It also provides a function allowing drivers to register lookup entries
    with the framework.
    
    The new lookup function is only called as a fallback in case the
    of_node field is NULL and doesn't change anything for current users.
    
    Tested with a dummy reset driver with several lookup entries.
    
    An example lookup table registration from a driver can be found below:
    
    static struct reset_control_lookup foobar_reset_lookup[] = {
    	RESET_LOOKUP("foo.0", "foo", 15),
    	RESET_LOOKUP("bar.0", NULL,   5),
    };
    
    foobar_probe()
    {
    ...
    
            reset_controller_add_lookup(&rcdev, foobar_reset_lookup,
                                        ARRAY_SIZE(foobar_reset_lookup));
    
    ...
    }
    
    Cc: Sekhar Nori <nsekhar@ti.com>
    Cc: Kevin Hilman <khilman@baylibre.com>
    Cc: David Lechner <david@lechnology.com>
    Signed-off-by: NBartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
    6691dffa
reset-controller.h 2.9 KB