From: Sebastian Hesselbarh <sebastian.hesselbarth@gmail.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Grant Likely <grant.likely@secretlab.ca>,
Rob Herring <rob.herring@calxeda.com>,
Rob Landley <rob@landley.net>,
Russell King <linux@arm.linux.org.uk>,
Lior Amsalem <alior@marvell.com>, Andrew Lunn <andrew@lunn.ch>,
Gregory CLEMENT <gregory.clement@free-electrons.com>,
Ben Dooks <ben.dooks@codethink.co.uk>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
devicetree-discuss@lists.ozlabs.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 02/11] pinctrl: mvebu: dove pinctrl driver
Date: Mon, 20 Aug 2012 16:43:00 +0200 [thread overview]
Message-ID: <50324CF4.7060304@gmail.com> (raw)
In-Reply-To: <CACRpkda9BL5+NiDOsMKG0kv2coBsw=Er=ZccXnNkgeftV9hPhQ@mail.gmail.com>
On 08/20/2012 03:43 PM, Linus Walleij wrote:
>> config PINCTRL_MVEBU
>> bool "Marvell SoC pin controller drivers"
>> - depends on ARCH_MVEBU
>> + depends on ARCH_MVEBU || ARCH_DOVE
>
> Hmmmm.
>
> Shouldn't this thing rather be:
> depends on PLAT_ORION
> else you end up lining up all Marvell machines here...
> (...)
>> +config PINCTRL_DOVE
>> + bool "Support for Marvell Dove SoCs"
>> + depends on PINCTRL_MVEBU
>
> Shouldn't this rather be:
>
> depends on ARCH_DOVE
> select PINCTRL_MVEBU
>
> since you call down into the mvebu driver, it definatley needs
> to select that.
Yes, this is a bit difficult but PLAT_ORION is basically all existing
Marvell SoCs of the Orion family. Armada 370/XP are two new SoCs
_and_ the approach to combine all into one mach-mvebu. The pinctrl
driver will only be made available to mach-mvebu as I am already close
to have at least mach-dove ported over.
After the review of Andrew, I already changed the Kconfig to have the
structure you are proposing.
>> +#define DOVE_AU0_AC97_SEL (1<< 16)
>
> It is way cleaner to say:
> #include<linux/bitops.h>
> #define DOVE_AU0_AC97_SEL BIT(16)
Ok.
> Same comments about the magic numbers as in the review of the first
> patch.
I just agree with all of these comments and will work them in.
>> + if (ctrl->pid == 24)
>> + mask = DOVE_CAM_GPIO_SEL;
>> + else if (ctrl->pid == 40)
>> + mask = DOVE_SD0_GPIO_SEL;
>> + else if (ctrl->pid == 46)
>> + mask = DOVE_SD1_GPIO_SEL;
>> + else if (ctrl->pid == 58)
>> + mask = DOVE_SPI_GPIO_SEL;
>> + else if (ctrl->pid == 62)
>> + mask = DOVE_UART1_GPIO_SEL;
>> + else
>> + return -EINVAL;
>
> Magic numbers, atleast provide a comment on what is so special about
> these pins, and can you use a switch() statement instead?
Sure.
>> +static int dove_audio1_ctrl_gpio_req(struct mvebu_mpp_ctrl *ctrl, u8 pid)
>> +{
>> + unsigned long config;
>> +
>> + dove_audio1_ctrl_get(ctrl,&config);
>> +
>> + switch (config) {
>> + /* mode 0x00 i2s1/spdifo : no gpio */
>> + /* mode 0x0c ssp/spdifo : no gpio */
>> + /* mode 0x0f ssp/twsi : no gpio */
>> + case 0x00:
>> + case 0x0c:
>> + case 0x0f:
>> + return -ENOTSUPP;
>
> Nice with the comments (also before the function),
> now I understand what's happening, this is pretty OK,
> I would have put the comments on the same
> line as the magic number but whatever.
>
> However you could just delete these lines and let them
> fall through to -ENOTSUPP at the bottom.
Ok.
>> +/* mpp[52:57] has gpio pins capable of in and out */
>> +static int dove_audio1_ctrl_gpio_dir(struct mvebu_mpp_ctrl *ctrl, u8 pid,
>> + bool input)
>> +{
>> + return 0;
>> +}
>
> So should this not return a -ENOTSUPP for
> pin< 52 || pin> 57?
Well, as pinctrl-mvebu and pinctrl core are already checking for pin
ranges, I think it's ok not to do it here again. But I don't have a
strong opinion about that.
>> + /*
>> + * General MPP Configuration Register is part of pdma registers.
>> + * grab clk to make sure it is clocked.
>> + */
>> + pdma_clk = clk_get_sys("dove-pdma", NULL);
>
> First there is something really weird with the name of this
> clock. Atleast call the variable holding the clk something
> apropriate like just "clk".
>
> Second why are you fetching a sys clock instead of using the clkdev
> device binding in the clock tree so you could say:
>
> clk = clk_get(&pdev->dev, NULL);
pdma is the name of the clock gating control bit used in DS, IIRC it
stands for Peripheral DMA. Moreover, as I already mentioned it is now
using devm_clk_get. I think the time the pinctrl-dove driver patch was
posted there was no clock binding in 3.6.
>> +static int __devexit dove_pinctrl_remove(struct platform_device *pdev)
>> +{
>> + int ret;
>> +
>> + ret = mvebu_pinctrl_remove(pdev);
>> + if (!IS_ERR(pdma_clk)) {
>> + clk_disable_unprepare(pdma_clk);
>> + clk_put(pdma_clk);
>> + }
>
> You don't need this (!IS_ERR()) clause, look in yout probe function:
> you bail out if the clock is not found.
Agree.
Sebastian
next prev parent reply other threads:[~2012-08-20 14:43 UTC|newest]
Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-11 12:56 [PATCH 00/11] pinctrl: mvebu: pinctrl driver Sebastian Hesselbarth
2012-08-11 12:56 ` [PATCH 01/11] pinctrl: mvebu: pinctrl driver core Sebastian Hesselbarth
2012-08-20 9:09 ` Linus Walleij
2012-08-20 9:46 ` Sebastian Hesselbarth
2012-08-20 12:51 ` Thomas Petazzoni
2012-08-20 14:18 ` Linus Walleij
2012-08-20 14:51 ` Sebastian Hesselbarth
2012-08-25 8:22 ` Andrew Lunn
2012-08-20 14:11 ` Linus Walleij
2012-08-11 12:56 ` [PATCH 02/11] pinctrl: mvebu: dove pinctrl driver Sebastian Hesselbarth
2012-08-20 13:43 ` Linus Walleij
2012-08-20 14:43 ` Sebastian Hesselbarh [this message]
2012-08-20 17:16 ` Thomas Petazzoni
2012-08-11 12:56 ` [PATCH 03/11] pinctrl: mvebu: kirkwood " Sebastian Hesselbarth
2012-08-20 13:49 ` Linus Walleij
2012-08-27 13:43 ` Ben Dooks
2012-08-27 19:19 ` Sebastian Hesselbarth
2012-08-27 20:02 ` Stephen Warren
2012-08-11 12:56 ` [PATCH 04/11] pinctrl: mvebu: add pinctrl driver for Armada 370 Sebastian Hesselbarth
2012-08-20 14:25 ` Linus Walleij
2012-08-20 16:48 ` Sebastian Hesselbarth
2012-08-20 17:36 ` Thomas Petazzoni
2012-08-20 18:01 ` Sebastian Hesselbarth
2012-08-20 18:51 ` Thomas Petazzoni
2012-08-21 7:12 ` Gregory CLEMENT
2012-08-11 12:56 ` [PATCH 05/11] pinctrl: mvebu: add pinctrl driver for Armada XP Sebastian Hesselbarth
2012-08-20 14:26 ` Linus Walleij
2012-08-11 12:56 ` [PATCH 06/11] ARM: mvebu: add pinctrl device in DT for Armada 370/XP SoCs Sebastian Hesselbarth
2012-08-20 14:27 ` Linus Walleij
2012-08-11 12:56 ` [PATCH 07/11] ARM: mvebu: Add pinctrl support to Armada XP SoCs Sebastian Hesselbarth
2012-08-20 14:27 ` Linus Walleij
2012-08-11 12:56 ` [PATCH 08/11] ARM: mvebu: Add pinctrl support to Armada 370 SoC Sebastian Hesselbarth
2012-08-20 14:28 ` Linus Walleij
2012-08-11 12:56 ` [PATCH 09/11] ARM: mvebu: adjust Armada XP evaluation board DTS Sebastian Hesselbarth
2012-08-20 14:28 ` Linus Walleij
2012-08-11 12:56 ` [PATCH 10/11] arm: mvebu: enable PINCTRL usage Sebastian Hesselbarth
2012-08-20 14:29 ` Linus Walleij
2012-08-11 12:56 ` [PATCH 11/11] arm: mvebu: add pinctrl support in defconfig Sebastian Hesselbarth
2012-08-20 14:31 ` Linus Walleij
2012-08-20 14:54 ` Sebastian Hesselbarth
2012-08-20 17:37 ` Thomas Petazzoni
2012-08-20 8:12 ` [PATCH 00/11] pinctrl: mvebu: pinctrl driver Linus Walleij
2012-08-22 8:22 ` [PATCH v2 0/9] " Sebastian Hesselbarth
2012-08-22 8:22 ` [PATCH v2 1/9] pinctrl: mvebu: pinctrl driver core Sebastian Hesselbarth
2012-08-22 20:43 ` Stephen Warren
2012-08-23 9:45 ` Sebastian Hesselbarth
2012-08-23 17:54 ` Stephen Warren
2012-08-23 20:31 ` Sebastian Hesselbarth
2012-08-23 21:26 ` Stephen Warren
2012-08-23 23:01 ` Sebastian Hesselbarth
2012-08-24 3:34 ` Stephen Warren
2012-08-25 15:53 ` Sebastian Hesselbarth
2012-08-27 4:33 ` Stephen Warren
2012-09-02 7:30 ` Linus Walleij
2012-09-02 8:27 ` Sebastian Hesselbarth
2012-09-03 9:32 ` Linus Walleij
2012-09-03 19:47 ` Jason Cooper
2012-09-09 19:56 ` Jason Cooper
2012-08-22 8:22 ` [PATCH v2 2/9] pinctrl: mvebu: dove pinctrl driver Sebastian Hesselbarth
2012-08-22 8:22 ` [PATCH v2 3/9] pinctrl: mvebu: kirkwood " Sebastian Hesselbarth
2012-08-22 8:22 ` [PATCH v2 4/9] pinctrl: mvebu: add pinctrl driver for Armada 370 Sebastian Hesselbarth
2012-08-22 8:22 ` [PATCH v2 5/9] pinctrl: mvebu: add pinctrl driver for Armada XP Sebastian Hesselbarth
2012-08-22 8:22 ` [PATCH v2 6/9] ARM: mvebu: add pinctrl device in DT for Armada 370/XP SoCs Sebastian Hesselbarth
2012-08-22 8:22 ` [PATCH v2 7/9] ARM: mvebu: Add pinctrl support to Armada XP SoCs Sebastian Hesselbarth
2012-08-22 20:45 ` Stephen Warren
2012-08-22 8:22 ` [PATCH v2 8/9] ARM: mvebu: Add pinctrl support to Armada 370 SoC Sebastian Hesselbarth
2012-08-22 20:46 ` Stephen Warren
2012-08-22 8:22 ` [PATCH v2 9/9] ARM: mvebu: adjust Armada XP evaluation board DTS Sebastian Hesselbarth
2012-09-10 8:39 ` [PATCH v3 0/9] pinctrl: mvebu: pinctrl driver Sebastian Hesselbarth
2012-09-10 8:39 ` [PATCH v3 1/9] pinctrl: mvebu: pinctrl driver core Sebastian Hesselbarth
2012-09-10 15:39 ` Linus Walleij
2012-09-11 14:44 ` Thomas Petazzoni
2012-09-11 22:17 ` Stephen Warren
2012-09-12 6:04 ` Linus Walleij
2012-09-12 6:54 ` Thomas Petazzoni
2012-09-12 15:50 ` Linus Walleij
2012-09-12 16:01 ` Thomas Petazzoni
2012-09-12 16:17 ` Linus Walleij
2012-09-12 21:10 ` Stephen Warren
2012-09-10 8:39 ` [PATCH v3 2/9] pinctrl: mvebu: dove pinctrl driver Sebastian Hesselbarth
2012-09-10 15:40 ` Linus Walleij
2012-09-11 22:18 ` Stephen Warren
2012-09-10 8:39 ` [PATCH v3 3/9] pinctrl: mvebu: kirkwood " Sebastian Hesselbarth
2012-09-10 15:42 ` Linus Walleij
2012-09-10 8:39 ` [PATCH v3 4/9] pinctrl: mvebu: add pinctrl driver for Armada 370 Sebastian Hesselbarth
2012-09-10 15:43 ` Linus Walleij
2012-09-10 8:39 ` [PATCH v3 5/9] pinctrl: mvebu: add pinctrl driver for Armada XP Sebastian Hesselbarth
2012-09-10 15:43 ` Linus Walleij
2012-09-10 8:39 ` [PATCH v3 6/9] ARM: mvebu: add pinctrl device in DT for Armada 370/XP SoCs Sebastian Hesselbarth
2012-09-11 22:23 ` Stephen Warren
2012-09-12 6:56 ` Thomas Petazzoni
2012-09-12 20:57 ` Stephen Warren
2012-09-10 8:39 ` [PATCH v3 7/9] ARM: mvebu: Add pinctrl support to Armada XP SoCs Sebastian Hesselbarth
2012-09-10 8:39 ` [PATCH v3 8/9] ARM: mvebu: Add pinctrl support to Armada 370 SoC Sebastian Hesselbarth
2012-09-10 8:39 ` [PATCH v3 9/9] ARM: mvebu: adjust Armada XP evaluation board DTS Sebastian Hesselbarth
2012-09-10 15:45 ` [PATCH v3 0/9] pinctrl: mvebu: pinctrl driver Linus Walleij
2012-09-10 15:57 ` Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 00/10] " Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 01/10] pinctrl: mvebu: pinctrl driver core Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 02/10] pinctrl: mvebu: dove pinctrl driver Sebastian Hesselbarth
2013-06-18 11:36 ` Russell King - ARM Linux
2013-06-18 12:01 ` Sebastian Hesselbarth
2013-06-18 15:02 ` Linus Walleij
2013-06-18 15:11 ` Russell King - ARM Linux
2013-06-18 15:23 ` Linus Walleij
2013-06-18 18:33 ` Mark Brown
2012-09-13 15:41 ` [PATCH v4 03/10] pinctrl: mvebu: kirkwood " Sebastian Hesselbarth
2012-09-16 7:46 ` Andrew Lunn
2012-09-16 9:09 ` Sebastian Hesselbarth
2012-09-17 8:45 ` Linus Walleij
2012-09-20 15:30 ` Arnd Bergmann
2012-09-20 18:34 ` Andrew Lunn
2012-09-20 19:28 ` Linus Walleij
2012-09-20 19:36 ` Thomas Petazzoni
2012-09-20 19:51 ` Andrew Lunn
2012-09-21 10:56 ` Ben Dooks
2012-09-21 18:14 ` Linus Walleij
2012-09-16 12:40 ` Jason Cooper
2012-09-17 1:55 ` Nicolas Pitre
2012-09-17 6:36 ` Sebastian Hesselbarth
2012-09-17 8:32 ` Andrew Lunn
2012-09-18 18:59 ` Andrew Lunn
2012-09-13 15:41 ` [PATCH v4 04/10] pinctrl: mvebu: add pinctrl driver for Armada 370 Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 05/10] pinctrl: mvebu: add pinctrl driver for Armada XP Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 06/10] ARM: mvebu: Add pinctrl support to Armada XP SoCs Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 07/10] ARM: mvebu: Add pinctrl support to Armada 370 SoC Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 08/10] ARM: mvebu: adjust Armada XP evaluation board DTS Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 09/10] arm: mvebu: split Kconfig options for Armada 370 and XP Sebastian Hesselbarth
2012-09-13 15:41 ` [PATCH v4 10/10] arm: mvebu: select the pinctrl drivers for Armada 370 and Armada XP platforms Sebastian Hesselbarth
2012-09-13 15:48 ` [PATCH v4 00/10] pinctrl: mvebu: pinctrl driver Thomas Petazzoni
2012-09-14 16:41 ` Stephen Warren
2012-09-20 8:13 ` [PATCH 00/11] " Linus Walleij
2012-09-20 8:17 ` Sebastian Hesselbarth
2012-09-20 9:04 ` Thomas Petazzoni
2012-09-20 10:02 ` Andrew Lunn
2012-09-20 10:32 ` Thomas Petazzoni
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=50324CF4.7060304@gmail.com \
--to=sebastian.hesselbarth@gmail.com \
--cc=alior@marvell.com \
--cc=andrew@lunn.ch \
--cc=ben.dooks@codethink.co.uk \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=gregory.clement@free-electrons.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=rob.herring@calxeda.com \
--cc=rob@landley.net \
--cc=thomas.petazzoni@free-electrons.com \
/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).