svn commit: r361460 - in head/sys: arm64/conf arm64/qoriq conf
Justin Hibbits
chmeeedalf at gmail.com
Mon May 25 16:18:46 UTC 2020
Hi Marcin,
On Mon, 25 May 2020 14:55:37 +0000 (UTC)
Marcin Wojtas <mw at FreeBSD.org> wrote:
> Author: mw
> Date: Mon May 25 14:55:37 2020
> New Revision: 361460
> URL: https://svnweb.freebsd.org/changeset/base/361460
>
> Log:
> Add GPIO support for QorIQ boards.
>
> This patch adds a GPIO controller support targeted for NXP LS1046A
> SoC. The driver implements the following features:
> * setting direction of each pin (IN or OUT)
> * setting the mode of output pins (PUSHPULL or OPENDRAIN)
> * setting the state of each output pin (1 or 0)
> * reading the state of each input pin (1 or 0)
>
> Submitted by: Kamil Koczurek <kek at semihalf.com>
> Dawid Gorecki <dgr at semihalf.com>
> Reviewed by: manu
> Obtained from: Semihalf
> Sponsored by: Alstom Group
> Differential Revision: https://reviews.freebsd.org/D24353
>
> Added:
> head/sys/arm64/qoriq/ls1046_gpio.c (contents, props changed)
> Modified:
> head/sys/arm64/conf/GENERIC
> head/sys/conf/files.arm64
>
> Modified: head/sys/arm64/conf/GENERIC
> ==============================================================================
> --- head/sys/arm64/conf/GENERIC Mon May 25 14:45:18
> 2020 (r361459) +++ head/sys/arm64/conf/GENERIC Mon May
> 25 14:55:37 2020 (r361460) @@ -248,6 +248,7 @@ device
> gpio device gpioled
> device fdt_pinctrl
> device gpioregulator
> +device ls1046_gpio # LS1046A GPIO controller
> device mv_gpio # Marvell GPIO
> controller device mvebu_pinctrl # Marvell
> Pinmux Controller device rk_gpio #
> RockChip GPIO Controller
>
> Added: head/sys/arm64/qoriq/ls1046_gpio.c
> ==============================================================================
> --- /dev/null 00:00:00 1970 (empty, because file is
> newly added) +++ head/sys/arm64/qoriq/ls1046_gpio.c Mon May 25
> 14:55:37 2020 (r361460) @@ -0,0 +1,586 @@
> +/*-
> + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
> + *
> + * Copyright (c) 2020 Alstom Group.
> + * Copyright (c) 2020 Semihalf.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above
> copyright
> + * notice, this list of conditions and the following disclaimer
> in the
> + * documentation and/or other materials provided with the
> distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS
> IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
> THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
> PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE
> LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
> GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
> ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> POSSIBILITY OF
> + * SUCH DAMAGE.
> + */
> +
> +#include <sys/cdefs.h>
> +__FBSDID("$FreeBSD$");
> +
> +#include <sys/param.h>
> +
> +#include <sys/bus.h>
> +#include <sys/endian.h>
> +#include <sys/gpio.h>
> +#include <sys/kernel.h>
> +#include <sys/module.h>
> +#include <sys/mutex.h>
> +
> +#include <dev/gpio/gpiobusvar.h>
> +#include <dev/ofw/ofw_bus.h>
> +#include <machine/bus.h>
> +
> +#include "gpio_if.h"
> +
> +/* constants */
> +enum {
> + DIRECTION = 0x0,
> + OPEN_DRAIN = 0x4,
> + DATA = 0x8,
> + INT_EV = 0xC,
> + INT_MASK = 0x10,
> + INT_CTRL = 0x14
> +};
This looks a lot like the GPIO module whose driver is in
sys/powerpc/mpc85xx/qoriq_gpio.c. Is there any difference in hardware?
If not, can you merge this driver with that, if there's anything to
merge, to reduce duplication?
- Justin
More information about the svn-src-head
mailing list