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
next prev parent reply other threads:[~2015-03-26 11:51 UTC|newest]
Thread overview: 25+ 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 ` [RFC 3/6] clocksource: tcb_clksrc: " Ben Dooks
2015-03-26 11:54 ` Hans-Christian Egtvedt
2015-03-26 11:45 ` [RFC 4/6] spi: atmel: " Ben Dooks
2015-03-26 11:55 ` Hans-Christian Egtvedt
2015-03-26 15:38 ` Mark Brown
2015-03-26 15:41 ` Nicolas Ferre
2015-03-26 16:00 ` 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: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 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).