[PATCH v8 08/14] mfd: rk8xx: add rk806 support

Neil Armstrong neil.armstrong at linaro.org
Wed Nov 15 09:17:50 PST 2023


Hi Sebastian,

On 04/05/2023 19:36, Sebastian Reichel wrote:
> Add support for SPI connected rk806, which is used by the RK3588
> evaluation boards. The PMIC is advertised to support I2C and SPI,
> but the evaluation boards all use SPI. Thus only SPI support is
> added here.
> 
> Acked-for-MFD-by: Lee Jones <lee at kernel.org>
> Tested-by: Diederik de Haas <didi.debian at cknow.org> # Rock64, Quartz64 Model A + B
> Tested-by: Vincent Legoll <vincent.legoll at gmail.com> # Pine64 QuartzPro64
> Signed-off-by: Sebastian Reichel <sebastian.reichel at collabora.com>
> ---
>   drivers/mfd/Kconfig       |  14 ++
>   drivers/mfd/Makefile      |   1 +
>   drivers/mfd/rk8xx-core.c  |  69 ++++++-
>   drivers/mfd/rk8xx-spi.c   | 124 ++++++++++++
>   include/linux/mfd/rk808.h | 409 ++++++++++++++++++++++++++++++++++++++
>   5 files changed, 614 insertions(+), 3 deletions(-)
>   create mode 100644 drivers/mfd/rk8xx-spi.c
> 

<snip>

>   
> -	ret = devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE,
> -			      cells, nr_cells, NULL, 0,
> +	ret = devm_mfd_add_devices(dev, 0, cells, nr_cells, NULL, 0,
>   			      regmap_irq_get_domain(rk808->irq_data));

It seems you replaced PLATFORM_DEVID_NONE by 0, triggering again the bug preventing
having multiples RK pmics on the same system I fixed earlier at [1].

This gives (again):
<4>[ 0.664107] sysfs: cannot create duplicate filename '/bus/platform/devices/rk808-clkout'
<4>[ 0.664120] CPU: 3 PID: 97 Comm: kworker/u12:2 Not tainted 6.6.1 #1
<4>[ 0.664131] Hardware name: Hardkernel ODROID-GO-Ultra (DT)
<4>[ 0.664139] Workqueue: events_unbound deferred_probe_work_func
<4>[ 0.664160] Call trace:
<4>[ 0.664165] dump_backtrace+0x9c/0x11c
<4>[ 0.664181] show_stack+0x18/0x24
<4>[ 0.664193] dump_stack_lvl+0x78/0xc4
<4>[ 0.664205] dump_stack+0x18/0x24
<4>[ 0.664215] sysfs_warn_dup+0x64/0x80
<4>[ 0.664227] sysfs_do_create_link_sd+0xf0/0xf8
<4>[ 0.664239] sysfs_create_link+0x20/0x40
<4>[ 0.664250] bus_add_device+0x114/0x160
<4>[ 0.664259] device_add+0x3f0/0x7cc
<4>[ 0.664267] platform_device_add+0x180/0x270
<4>[ 0.664278] mfd_add_device+0x390/0x4a8
<4>[ 0.664290] devm_mfd_add_devices+0xb0/0x150
<4>[ 0.664301] rk8xx_probe+0x26c/0x410
<4>[ 0.664312] rk8xx_i2c_probe+0x64/0x98
<4>[ 0.664323] i2c_device_probe+0x104/0x2e8
<4>[ 0.664333] really_probe+0x184/0x3c8
<4>[ 0.664342] __driver_probe_device+0x7c/0x16c
<4>[ 0.664351] driver_probe_device+0x3c/0x10c
<4>[ 0.664360] __device_attach_driver+0xbc/0x158
<4>[ 0.664369] bus_for_each_drv+0x80/0xdc
<4>[ 0.664377] __device_attach+0x9c/0x1ac
<4>[ 0.664386] device_initial_probe+0x14/0x20
<4>[ 0.664395] bus_probe_device+0xac/0xb0
<4>[ 0.664403] deferred_probe_work_func+0xa0/0xf4
<4>[ 0.664412] process_one_work+0x1bc/0x378
<4>[ 0.664421] worker_thread+0x1dc/0x3d4
<4>[ 0.664429] kthread+0x104/0x118
<4>[ 0.664440] ret_from_fork+0x10/0x20
<3>[ 0.664494] rk8xx-i2c 0-001c: error -EEXIST: failed to add MFD devices
<4>[ 0.666769] rk8xx-i2c: probe of 0-001c failed with error -17

[1] https://lore.kernel.org/r/20221025-rk808-multi-v2-0-d292d51ada81@linaro.org

Thanks,
Neil

>   	if (ret)
>   		return dev_err_probe(dev, ret, "failed to add MFD devices\n");

<snip>




More information about the Linux-rockchip mailing list