All of lore.kernel.org
 help / color / mirror / Atom feed
From: egtvedt@samfundet.no (Hans-Christian Egtvedt)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 1/6] atmel: add atmel_io.h
Date: Thu, 26 Mar 2015 12:51:23 +0100	[thread overview]
Message-ID: <20150326115123.GA16148@samfundet.no> (raw)
In-Reply-To: <1427370354-21247-2-git-send-email-ben.dooks@codethink.co.uk>

Around Thu 26 Mar 2015 11:45:49 +0000 or thereabout, Ben Dooks wrote:
> The AVR32 and ARM (AT91) architectures share a number of drivers which
> need to access the on chip peripherals. The current drivers work with
> the default endian configuration, however it is possilbe to run some of
> the ATMEL ARM architectures in big endian mode.
> 
> If we change the drivers from __raw to _relaxed IO accesors then the ARM
> side works but the AVR32 will not. The _relaxed assume the bus is little
> endian and the __raw are native. The AVR32 is native big endian so these
> are not the right functions.
> 
> To sort this out, and avoid a number of drivers having #ifdef for the
> AVR32 case we add <linux/atmel_io.h> to provide some AT91/AVR32 independant
> IO accessor functions.
> 
> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>

Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>

> --
> CC: Haavard Skinnemoen <hskinnemoen@gmail.com>
> CC: Hans-Christian Egtvedt <egtvedt@samfundet.no>
> CC: Andrew Victor <linux@maxim.org.za>
> CC: Nicolas Ferre <nicolas.ferre@atmel.com>
> CC: linux-arm-kernel at lists.infradead.org
> ---
>  include/linux/atmel_io.h | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>  create mode 100644 include/linux/atmel_io.h
> 
> diff --git a/include/linux/atmel_io.h b/include/linux/atmel_io.h
> new file mode 100644
> index 0000000..1234e88
> --- /dev/null
> +++ b/include/linux/atmel_io.h
> @@ -0,0 +1,25 @@
> +/* Atmel AT91/AVR32 independant IO
> + *
> + * Copyright 2015 Codethink Ltd.
> + * Ben Dooks <ben.dooks@codethink.co.uk>
> + *
> + * Provide architecture indendant, endian-safe IO accessor functions
> + */
> +
> +#ifdef CONFIG_AVR32
> +/* For AVR32 the readl and writel relaxed will do an extra byte reverse
> + * as the peripherals are already in the same endian-ness as the CPU and
> + * readl/writel assume little endian where the CPU is big endian
> + */
> +#define atmel_oc_readl	__raw_readl
> +#define atmel_oc_writel	__raw_writel
> +
> +#define atmel_oc_readw	__raw_readw
> +#define atmel_oc_writew	__raw_writew
> +#else
> +#define atmel_oc_readl	readl_relaxed
> +#define atmel_oc_writel	writel_relaxed
> +
> +#define atmel_oc_readw	readw_relaxed
> +#define atmel_oc_writew	writew_relaxed
> +#endif
-- 
mvh
Hans-Christian Egtvedt

  reply	other threads:[~2015-03-26 11:51 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-26 11:45 [RFC] add avr32/at91 on-chip iO accessors Ben Dooks
2015-03-26 11:45 ` [RFC 1/6] atmel: add atmel_io.h Ben Dooks
2015-03-26 11:51   ` Hans-Christian Egtvedt [this message]
2015-03-28 18:20     ` Alexandre Belloni
2015-03-28 23:12       ` Russell King - ARM Linux
2015-03-26 11:45 ` [RFC 2/6] tty: serial: atmel: use atmel_io.h to provide on-chip IO Ben Dooks
2015-03-26 11:45   ` Ben Dooks
2015-03-26 11:45 ` [RFC 3/6] clocksource: tcb_clksrc: " Ben Dooks
2015-03-26 11:45   ` Ben Dooks
2015-03-26 11:54   ` Hans-Christian Egtvedt
2015-03-26 11:54     ` Hans-Christian Egtvedt
     [not found] ` <1427370354-21247-1-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2015-03-26 11:45   ` [RFC 4/6] spi: atmel: " Ben Dooks
2015-03-26 11:45     ` Ben Dooks
     [not found]     ` <1427370354-21247-5-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2015-03-26 11:55       ` Hans-Christian Egtvedt
2015-03-26 11:55         ` Hans-Christian Egtvedt
2015-03-26 15:38       ` Mark Brown
2015-03-26 15:38         ` Mark Brown
     [not found]         ` <20150326153855.GP3572-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-26 15:41           ` Nicolas Ferre
2015-03-26 15:41             ` Nicolas Ferre
     [not found]             ` <551428A9.9090604-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2015-03-26 16:00               ` Mark Brown
2015-03-26 16:00                 ` Mark Brown
2015-03-26 16:01       ` Mark Brown
2015-03-26 16:01         ` Mark Brown
2015-03-26 11:45 ` [RFC 5/6] usb: gadget: atmel_usba: " Ben Dooks
2015-03-26 11:56   ` Hans-Christian Egtvedt
2015-04-27 20:55     ` Felipe Balbi
2015-04-28 15:40       ` Ben Dooks
2015-04-28 16:22         ` Nicolas Ferre
2015-04-28 16:30         ` Felipe Balbi
2015-04-28 16:34           ` Ben Dooks
2015-04-28 16:34             ` Felipe Balbi
2015-03-26 11:45 ` [RFC 6/6] mmc: atmel-mci: " Ben Dooks
2015-03-26 11:45   ` Ben Dooks
2015-03-26 11:58   ` Hans-Christian Egtvedt
2015-03-26 11:58     ` Hans-Christian Egtvedt
2015-03-27 17:36 ` [Linux-kernel] [RFC] add avr32/at91 on-chip iO accessors Ben Dooks

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=20150326115123.GA16148@samfundet.no \
    --to=egtvedt@samfundet.no \
    --cc=linux-arm-kernel@lists.infradead.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 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.