lkml.org 
[lkml]   [2018]   [Feb]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v4] reset: add support for non-DT systems
From
Date
On 02/19/2018 10:58 AM, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> 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 new reset lookup
> structures. Each lookup table contains a set of lookup entries which
> allow the reset core to associate reset lines with devices (by
> comparing the dev_id and con_id strings).
>
> Machine code can register a set of reset lines using this lookup table
> and concerned devices can access them using the regular reset_control
> API.
>
> 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 can be found below:
>
> static struct platform_device foobar_reset_dev = {
> .name = "foobar-reset",
> };
>
> static struct reset_lookup_entry foobar_reset_lookup_entries[] = {
> { .con_id = "foo", id = 15 },
> { .con_id = "bar", id = 5 },
> };
>
> static struct reset_lookup_table foobar_reset_lookup_table = {
> .dev_id = "foobar-device",
> .entries = foobar_reset_lookup_entries,
> .num_entries = ARRAY_SIZE(foobar_reset_lookup_entries),
> .dev = &foobar_reset_dev.dev,
> };
>

This seems like a lot of boilerplate to register a lookup. Can we have
something like phy_create_lookup() instead where there is just a single
function call to register a single lookup? This will be much easier to
use in the davinci PSC driver.

void reset_add_lookup(struct reset_controller_dev *rdev, int index,
const char *dev_id, const char *con_id);

\
 
 \ /
  Last update: 2018-02-20 01:21    [W:0.075 / U:0.992 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site