From: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
To: Hans De Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Linus Walleij
<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Maxime Ripard
<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Samuel Ortiz <sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Mike Turquette
<mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Linux Media Mailing List
<linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-arm-kernel
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-sunxi <linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: [PATCH v2 04/13] rc: sunxi-cir: Add support for an optional reset controller
Date: Thu, 18 Dec 2014 10:48:00 +0800 [thread overview]
Message-ID: <CAGb2v65BW7NABQXK877DkMNqDdBeuZ55wQHFkTexbWACFC4zFA@mail.gmail.com> (raw)
In-Reply-To: <1418836704-15689-5-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Hi,
On Thu, Dec 18, 2014 at 1:18 AM, Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> On sun6i the cir block is attached to the reset controller, add support
> for de-asserting the reset if a reset controller is specified in dt.
>
> Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> Acked-by: Mauro Carvalho Chehab <mchehab-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
> Acked-by: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
> ---
> .../devicetree/bindings/media/sunxi-ir.txt | 2 ++
> drivers/media/rc/sunxi-cir.c | 25 ++++++++++++++++++++--
> 2 files changed, 25 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/media/sunxi-ir.txt b/Documentation/devicetree/bindings/media/sunxi-ir.txt
> index 23dd5ad..6b70b9b 100644
> --- a/Documentation/devicetree/bindings/media/sunxi-ir.txt
> +++ b/Documentation/devicetree/bindings/media/sunxi-ir.txt
> @@ -10,6 +10,7 @@ Required properties:
>
> Optional properties:
> - linux,rc-map-name : Remote control map name.
> +- resets : phandle + reset specifier pair
Should it be optional? Or should we use a sun6i compatible with
a mandatory reset phandle? I mean, the driver/hardware is not
going to work with the reset missing on sun6i.
Seems we are doing it one way for some of our drivers, and
the other (optional) way for more generic ones, like USB.
ChenYu
> Example:
>
> @@ -17,6 +18,7 @@ ir0: ir@01c21800 {
> compatible = "allwinner,sun4i-a10-ir";
> clocks = <&apb0_gates 6>, <&ir0_clk>;
> clock-names = "apb", "ir";
> + resets = <&apb0_rst 1>;
> interrupts = <0 5 1>;
> reg = <0x01C21800 0x40>;
> linux,rc-map-name = "rc-rc6-mce";
> diff --git a/drivers/media/rc/sunxi-cir.c b/drivers/media/rc/sunxi-cir.c
> index 340f7f5..06170e0 100644
> --- a/drivers/media/rc/sunxi-cir.c
> +++ b/drivers/media/rc/sunxi-cir.c
> @@ -23,6 +23,7 @@
> #include <linux/interrupt.h>
> #include <linux/module.h>
> #include <linux/of_platform.h>
> +#include <linux/reset.h>
> #include <media/rc-core.h>
>
> #define SUNXI_IR_DEV "sunxi-ir"
> @@ -95,6 +96,7 @@ struct sunxi_ir {
> int irq;
> struct clk *clk;
> struct clk *apb_clk;
> + struct reset_control *rst;
> const char *map_name;
> };
>
> @@ -166,15 +168,29 @@ static int sunxi_ir_probe(struct platform_device *pdev)
> return PTR_ERR(ir->clk);
> }
>
> + /* Reset (optional) */
> + ir->rst = devm_reset_control_get_optional(dev, NULL);
> + if (IS_ERR(ir->rst)) {
> + ret = PTR_ERR(ir->rst);
> + if (ret == -EPROBE_DEFER)
> + return ret;
> + ir->rst = NULL;
> + } else {
> + ret = reset_control_deassert(ir->rst);
> + if (ret)
> + return ret;
> + }
> +
> ret = clk_set_rate(ir->clk, SUNXI_IR_BASE_CLK);
> if (ret) {
> dev_err(dev, "set ir base clock failed!\n");
> - return ret;
> + goto exit_reset_assert;
> }
>
> if (clk_prepare_enable(ir->apb_clk)) {
> dev_err(dev, "try to enable apb_ir_clk failed\n");
> - return -EINVAL;
> + ret = -EINVAL;
> + goto exit_reset_assert;
> }
>
> if (clk_prepare_enable(ir->clk)) {
> @@ -271,6 +287,9 @@ exit_clkdisable_clk:
> clk_disable_unprepare(ir->clk);
> exit_clkdisable_apb_clk:
> clk_disable_unprepare(ir->apb_clk);
> +exit_reset_assert:
> + if (ir->rst)
> + reset_control_assert(ir->rst);
>
> return ret;
> }
> @@ -282,6 +301,8 @@ static int sunxi_ir_remove(struct platform_device *pdev)
>
> clk_disable_unprepare(ir->clk);
> clk_disable_unprepare(ir->apb_clk);
> + if (ir->rst)
> + reset_control_assert(ir->rst);
>
> spin_lock_irqsave(&ir->ir_lock, flags);
> /* disable IR IRQ */
> --
> 2.1.0
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> For more options, visit https://groups.google.com/d/optout.
next prev parent reply other threads:[~2014-12-18 2:48 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-17 17:18 [PATCH v2 00/13] sun6i: Add A31s and ir support Hans de Goede
[not found] ` <1418836704-15689-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-17 17:18 ` [PATCH v2 01/13] pinctrl: sun6i: Add some missing functions Hans de Goede
[not found] ` <1418836704-15689-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:17 ` Maxime Ripard
2015-01-13 14:29 ` Linus Walleij
2014-12-17 17:18 ` [PATCH v2 02/13] pinctrl: sun6i: Add A31s pinctrl support Hans de Goede
[not found] ` <1418836704-15689-3-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:20 ` Maxime Ripard
2015-01-13 14:31 ` Linus Walleij
2014-12-17 17:18 ` [PATCH v2 03/13] ARM: sunxi: Add "allwinner,sun6i-a31s" to mach-sunxi Hans de Goede
[not found] ` <1418836704-15689-4-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:22 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 04/13] rc: sunxi-cir: Add support for an optional reset controller Hans de Goede
[not found] ` <1418836704-15689-5-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-18 2:48 ` Chen-Yu Tsai [this message]
[not found] ` <CAGb2v65BW7NABQXK877DkMNqDdBeuZ55wQHFkTexbWACFC4zFA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-18 8:50 ` Hans de Goede
[not found] ` <54929552.8090707-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:17 ` Maxime Ripard
2014-12-20 10:20 ` Hans de Goede
[not found] ` <54954D5B.2020904-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-01-19 14:10 ` Chen-Yu Tsai
[not found] ` <CAGb2v676uRnKRNbBLPvcW4oTVzjWnNbVUTtw=DLoDyr2vn3Dgw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-19 14:17 ` Hans de Goede
[not found] ` <54BD11DF.1020907-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-01-19 14:24 ` Chen-Yu Tsai
2014-12-17 17:18 ` [PATCH v2 05/13] rc: sunxi-cir: Add support for the larger fifo found on sun5i and sun6i Hans de Goede
2014-12-17 17:18 ` [PATCH v2 06/13] clk: sunxi: Make the mod0 clk driver also a platform driver Hans de Goede
[not found] ` <1418836704-15689-7-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:24 ` Maxime Ripard
2014-12-20 10:25 ` Hans de Goede
2014-12-17 17:18 ` [PATCH v2 07/13] mfd: sun6i-prcm: Add support for the ir-clk Hans de Goede
[not found] ` <1418836704-15689-8-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-18 8:41 ` Lee Jones
2014-12-18 8:53 ` Hans de Goede
[not found] ` <54929602.8020002-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-18 9:19 ` Lee Jones
2014-12-17 17:18 ` [PATCH v2 08/13] ARM: dts: sun6i: Add ir_clk node Hans de Goede
[not found] ` <1418836704-15689-9-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:25 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 09/13] ARM: dts: sun6i: Add ir node Hans de Goede
[not found] ` <1418836704-15689-10-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:25 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 10/13] ARM: dts: sun6i: Add pinmux settings for the ir pins Hans de Goede
2014-12-17 17:18 ` [PATCH v2 11/13] ARM: dts: sun6i: Enable ir receiver on the Mele M9 Hans de Goede
[not found] ` <1418836704-15689-12-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:27 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 12/13] ARM: dts: sun6i: Add sun6i-a31s.dtsi Hans de Goede
[not found] ` <1418836704-15689-13-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-19 18:34 ` Maxime Ripard
2014-12-20 10:24 ` Hans de Goede
[not found] ` <54954E77.4070302-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-21 22:39 ` Maxime Ripard
2014-12-22 13:46 ` Hans de Goede
[not found] ` <549820A4.9090900-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-01-05 9:08 ` Maxime Ripard
2015-01-05 9:31 ` Hans de Goede
[not found] ` <54AA59D9.7030909-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-01-06 10:03 ` Maxime Ripard
2014-12-17 17:18 ` [PATCH v2 13/13] ARM: dts: sun6i: Add dts file for CSQ CS908 board Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAGb2v65BW7NABQXK877DkMNqDdBeuZ55wQHFkTexbWACFC4zFA@mail.gmail.com \
--to=wens-jday2fn1rrm@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=sameo-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).