diff --git a/drivers/mfd/timberdale.c b/drivers/mfd/timberdale.c index d79419215cc2..0ab3da3d6818 100644 --- a/drivers/mfd/timberdale.c +++ b/drivers/mfd/timberdale.c @@ -38,6 +38,8 @@ #define DRIVER_NAME "timberdale" #define GPIO_NR_PINS 16 +#define GPIO_BASE 0 +#define IRQ_BASE 200 struct timberdale_device { resource_size_t ctl_mapbase; @@ -183,6 +185,18 @@ static struct timbgpio_platform_data .irq_base = 200, }; +static const struct property_entry timberdale_gpio_properties[] = { + PROPERTY_ENTRY_U32("ngpios", GPIO_NR_PINS), + PROPERTY_ENTRY_U32("gpio-base", GPIO_BASE), + PROPERTY_ENTRY_U32("irq-base", IRQ_BASE), + { } +}; + +static const struct software_node timberdale_gpio_swnode = { + .name = "timb-gpio", + .properties = timberdale_gpio_properties, +}; + static const struct resource timberdale_gpio_resources[] = { { .start = GPIOOFFSET, @@ -394,6 +408,7 @@ static const struct mfd_cell timberdale_cells_bar0_cfg0[] = { .resources = timberdale_gpio_resources, .platform_data = &timberdale_gpio_platform_data, .pdata_size = sizeof(timberdale_gpio_platform_data), + .swnode = &timberdale_gpio_swnode, }, { .name = "timb-video", @@ -456,6 +471,7 @@ static const struct mfd_cell timberdale_cells_bar0_cfg1[] = { .resources = timberdale_gpio_resources, .platform_data = &timberdale_gpio_platform_data, .pdata_size = sizeof(timberdale_gpio_platform_data), + .swnode = &timberdale_gpio_swnode, }, { .name = "timb-mlogicore", @@ -518,6 +534,7 @@ static const struct mfd_cell timberdale_cells_bar0_cfg2[] = { .resources = timberdale_gpio_resources, .platform_data = &timberdale_gpio_platform_data, .pdata_size = sizeof(timberdale_gpio_platform_data), + .swnode = &timberdale_gpio_swnode, }, { .name = "timb-video", @@ -568,6 +585,7 @@ static const struct mfd_cell timberdale_cells_bar0_cfg3[] = { .resources = timberdale_gpio_resources, .platform_data = &timberdale_gpio_platform_data, .pdata_size = sizeof(timberdale_gpio_platform_data), + .swnode = &timberdale_gpio_swnode, }, { .name = "timb-video",