All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 2/9] sunxi: initial sun7i pinmux and gpio support
Date: Mon, 24 Mar 2014 21:54:12 +0100	[thread overview]
Message-ID: <201403242154.12633.marex@denx.de> (raw)
In-Reply-To: <1395438866-1193-2-git-send-email-ijc@hellion.org.uk>

On Friday, March 21, 2014 at 10:54:19 PM, Ian Campbell wrote:
[...]

> diff --git a/arch/arm/cpu/armv7/sunxi/pinmux.c
> b/arch/arm/cpu/armv7/sunxi/pinmux.c new file mode 100644
> index 0000000..8f5cbfe
> --- /dev/null
> +++ b/arch/arm/cpu/armv7/sunxi/pinmux.c
> @@ -0,0 +1,80 @@
> +/*
> + * (C) Copyright 2007-2011
> + * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
> + * Tom Cubie <tangliang@allwinnertech.com>
> + *
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/arch/gpio.h>
> +
> +int sunxi_gpio_set_cfgpin(u32 pin, u32 val)
> +{
> +	u32 cfg;
> +	u32 bank = GPIO_BANK(pin);
> +	u32 index = GPIO_CFG_INDEX(pin);
> +	u32 offset = GPIO_CFG_OFFSET(pin);
> +	struct sunxi_gpio *pio =
> +	    &((struct sunxi_gpio_reg *)SUNXI_PIO_BASE)->gpio_bank[bank];
> +
> +	cfg = readl(&pio->cfg[0] + index);
> +	cfg &= ~(0xf << offset);
> +	cfg |= val << offset;
> +
> +	writel(cfg, &pio->cfg[0] + index);

clrsetbits_le32() here.

> +	return 0;
> +}
> +
> +int sunxi_gpio_get_cfgpin(u32 pin)
> +{
> +	u32 cfg;
> +	u32 bank = GPIO_BANK(pin);
> +	u32 index = GPIO_CFG_INDEX(pin);
> +	u32 offset = GPIO_CFG_OFFSET(pin);
> +	struct sunxi_gpio *pio =
> +	    &((struct sunxi_gpio_reg *)SUNXI_PIO_BASE)->gpio_bank[bank];
> +
> +	cfg = readl(&pio->cfg[0] + index);
> +	cfg >>= offset;
> +
> +	return cfg & 0xf;
> +}
> +
> +int sunxi_gpio_set_drv(u32 pin, u32 val)
> +{
> +	u32 drv;
> +	u32 bank = GPIO_BANK(pin);
> +	u32 index = GPIO_DRV_INDEX(pin);
> +	u32 offset = GPIO_DRV_OFFSET(pin);
> +	struct sunxi_gpio *pio =
> +	    &((struct sunxi_gpio_reg *)SUNXI_PIO_BASE)->gpio_bank[bank];
> +
> +	drv = readl(&pio->drv[0] + index);
> +	drv &= ~(0x3 << offset);
> +	drv |= val << offset;
> +
> +	writel(drv, &pio->drv[0] + index);

Here as well.

> +	return 0;
> +}
> +
> +int sunxi_gpio_set_pull(u32 pin, u32 val)
> +{
> +	u32 pull;
> +	u32 bank = GPIO_BANK(pin);
> +	u32 index = GPIO_PULL_INDEX(pin);
> +	u32 offset = GPIO_PULL_OFFSET(pin);
> +	struct sunxi_gpio *pio =
> +	    &((struct sunxi_gpio_reg *)SUNXI_PIO_BASE)->gpio_bank[bank];
> +
> +	pull = readl(&pio->pull[0] + index);
> +	pull &= ~(0x3 << offset);
> +	pull |= val << offset;
> +
> +	writel(pull, &pio->pull[0] + index);

Same here.

> +	return 0;
> +}

[...]

> +int sunxi_gpio_set_cfgpin(u32 pin, u32 val);
> +int sunxi_gpio_get_cfgpin(u32 pin);
> +int sunxi_gpio_set_drv(u32 pin, u32 val);
> +int sunxi_gpio_set_pull(u32 pin, u32 val);
> +int name_to_gpio(const char *name);
> +#define name_to_gpio	name_to_gpio

What is this ugly define doing here ?

  reply	other threads:[~2014-03-24 20:54 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-21 21:54 [U-Boot] [PATCH v2 0/9] sunxi: initial upstreamining effort Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 1/9] sunxi: initial sun7i clocks and timer support Ian Campbell
2014-03-24 20:52   ` Marek Vasut
2014-03-24 22:42     ` Olliver Schinagl
2014-03-25  0:57       ` Marek Vasut
2014-03-25  6:35       ` Wolfgang Denk
2014-03-26  8:23       ` Ian Campbell
2014-04-13 19:55       ` Ian Campbell
2014-04-13 21:00         ` Marek Vasut
2014-03-26  8:23     ` Ian Campbell
2014-03-27 21:29     ` Ian Campbell
2014-03-27 22:00       ` Marek Vasut
2014-03-27 22:12         ` Ian Campbell
2014-03-27 22:36           ` Marek Vasut
2014-03-28  8:20             ` Ian Campbell
2014-03-28  8:24               ` Marek Vasut
2014-03-28  8:25               ` Hans de Goede
2014-03-28  8:39                 ` Marek Vasut
2014-03-21 21:54 ` [U-Boot] [PATCH v2 2/9] sunxi: initial sun7i pinmux and gpio support Ian Campbell
2014-03-24 20:54   ` Marek Vasut [this message]
2014-03-26  8:30     ` Ian Campbell
2014-03-26  8:59       ` Marek Vasut
2014-03-26  9:01       ` Wolfgang Denk
2014-03-27 21:52         ` Ian Campbell
2014-03-26  8:33     ` Ian Campbell
2014-03-26  9:01       ` Marek Vasut
2014-03-26  9:03       ` Wolfgang Denk
2014-03-26  9:39         ` Ian Campbell
2014-03-26 10:03           ` Marek Vasut
2014-03-26 14:57           ` Wolfgang Denk
2014-03-21 21:54 ` [U-Boot] [PATCH v2 3/9] sunxi: initial sun7i dram setup support Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 4/9] sunxi: initial generic sun7i cpu, board and start of day support Ian Campbell
2014-03-22  6:52   ` Wolfgang Denk
2014-03-22  7:08     ` mrnuke
2014-03-22  9:04     ` Hans de Goede
2014-03-22  9:37       ` Ian Campbell
2014-03-22 12:27       ` Wolfgang Denk
2014-03-22 15:28         ` Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 5/9] sunxi: generic sun7i build infrastructure Ian Campbell
2014-03-22  6:46   ` Wolfgang Denk
2014-03-22 10:04     ` Ian Campbell
2014-03-22 12:33       ` Wolfgang Denk
2014-03-22 15:12         ` Hans de Goede
2014-03-22 15:26           ` Ian Campbell
2014-03-22 19:31           ` Wolfgang Denk
2014-03-22 20:07             ` Hans de Goede
2014-03-24 21:01   ` Marek Vasut
2014-03-27 22:05     ` Ian Campbell
2014-03-27 22:37       ` Marek Vasut
2014-03-28  8:26         ` Ian Campbell
2014-03-28  8:37           ` Marek Vasut
2014-03-21 21:54 ` [U-Boot] [PATCH v2 6/9] sunxi: add support for Cubietruck booting in FEL mode Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 7/9] sunxi: add gmac Ethernet support Ian Campbell
2014-03-21 21:54 ` [U-Boot] [PATCH v2 8/9] sunxi: mmc support Ian Campbell
2014-03-24 21:14   ` Marek Vasut
2014-03-21 21:54 ` [U-Boot] [PATCH v2 9/9] sunxi: non-FEL SPL boot support for sun7i Ian Campbell
2014-03-22  6:54 ` [U-Boot] [PATCH v2 0/9] sunxi: initial upstreamining effort Wolfgang Denk
2014-03-24  0:14 ` [U-Boot] [linux-sunxi] " Henrik Nordström
2014-03-24  8:05   ` Ian Campbell

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=201403242154.12633.marex@denx.de \
    --to=marex@denx.de \
    --cc=u-boot@lists.denx.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.