Hi Krzysztof,
On 6/01/24 04:59, Krzysztof Kozlowski wrote:
Hi,
Changes in v2 ============= 1. wsa884x.c: add missing return in wsa884x_get_reset(), correct comment. 2. qcom,wsa8840.yaml: fix oneOf syntax. 3. reset/core.c: - Revise approach based on Bartosz comments: parse the reset-gpios phandle with arguments, do not use deprecated API and do not rely on gpio_desc pointer. - Create a list of instantiated platform devices to avoid any duplicates. - After creating reset-gpio platform device, try to get new reset controller or return EPROBE_DEFER. - Drop the "cookie" member and add new "of_args" to "struct reset_controller_dev". 4. reset-gpio.c: - Fix smatch warning on platdata evaluation. - Parse GPIO args and store them in rc.of_args.
Description ===========
We have at least few cases where hardware engineers decided to use one powerdown/shutdown/reset GPIO line for multiple devices:
(cp: links removed due to corp email munging them and making them look like a phishing attempt)
I try to solve my case, hopefuly Chris' (2), partially Sean's (4) and maybe Hectors (5), using Rob's suggestion:
(cp: link removed here)
Best regards, Krzysztof
Cc: Chris Packham chris.packham@alliedtelesis.co.nzmailto:chris.packham@alliedtelesis.co.nz Cc: Bartosz Golaszewski brgl@bgdev.plmailto:brgl@bgdev.pl Cc: Sean Anderson sean.anderson@seco.commailto:sean.anderson@seco.com
Krzysztof Kozlowski (4): reset: gpio: Add GPIO-based reset controller reset: Instantiate reset GPIO controller for shared reset-gpios ASoC: dt-bindings: qcom,wsa8840: Add reset-gpios for shared line ASoC: codecs: wsa884x: Allow sharing reset GPIO
.../bindings/sound/qcom,wsa8840.yaml | 11 +- MAINTAINERS | 5 + drivers/reset/Kconfig | 9 + drivers/reset/Makefile | 1 + drivers/reset/core.c | 176 ++++++++++++++++-- drivers/reset/reset-gpio.c | 121 ++++++++++++ include/linux/reset-controller.h | 4 + sound/soc/codecs/wsa884x.c | 53 +++++- 8 files changed, 356 insertions(+), 24 deletions(-) create mode 100644 drivers/reset/reset-gpio.c
I'll try and take these for a spin on my hardware. I think I'll need to update the pca954x mux driver along similar lines to your changes to the wsa884x. Do you happen to have an example of what the reset-controller usage looks like in a devicetree? I can probably figure it out based on the code but I figured I'd ask just in case you already had an example handy.