From: arnd@arndb•de (Arnd Bergmann)
To: linux-arm-kernel@lists•infradead.org
Subject: ioremap to a specific virtual address
Date: Sun, 25 Mar 2012 17:34:41 +0000 [thread overview]
Message-ID: <201203251734.41780.arnd@arndb.de> (raw)
In-Reply-To: <CAKON4OwhcFDMC4dWjU7x4u2CPT7C2BxVuCDkTN0j14gTndi3tA@mail.gmail.com>
On Saturday 24 March 2012, jonsmirl at gmail.com wrote:
> The dm9000 is on the LPC3131 reference design board. It is not our
> hardware so I'm not sure what it is doing with the GPIO pin. I'm
> porting the reference board code in the hopes that someone will help
> out in this effort.
Ok, so it's possible that nobody knows why the gpio read was put
in then and it might be completely bogus?
> Another piece of board specific glue is this bit that needs to be
> executed before accessing the dm9000. It puts the bus in the board's
> range in 8/16/32b mode, timings, etc.
>
> static void __init ea_add_device_dm9000(void)
> {
> /*
> * Configure Chip-Select 2 on SMC for the DM9000.
> * Note: These timings were calculated for MASTER_CLOCK = 90000000
> * according to the DM9000 timings.
> */
> MPMC_STCONFIG1 = 0x81;
> MPMC_STWTWEN1 = 1;
> MPMC_STWTOEN1 = 1;
> MPMC_STWTRD1 = 4;
> MPMC_STWTPG1 = 1;
> MPMC_STWTWR1 = 1;
> MPMC_STWTTURN1 = 2;
> /* enable oe toggle between consec reads */
> SYS_MPMC_WTD_DEL1 = _BIT(5) | 4;
>
I would try to describe the MPMC static memory configuration using a device
node containing these, if you can't reliably move the configuration into the
boot loader itself.
In the device tree, this can look like:
/ {
ahb {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
mpmc at 17008200 {
compatible = "nxp,lpc31xx-mpmc";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x20000000 0x20000>; /* map to sram0 */
reg = <0x17008200 0x20>;
status = "disabled"; /* unused here */
};
mpmc at 17008220 {
compatible = "nxp,lpc31xx-mpmc";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x20020000 0x20000>; /* map to sram1 */
reg = <0x17008220 0x20>;
/* mpmc configuration */
mpmc-static-config = <0x81>;
mpmc-static-wait-wen = <1>;
mpmc-static-wait-oen = <1>;
mpmc-static-wait-rd = <4>;
mpmc-static-wait-page = <1>;
mpmc-static-wait-write = <1>;
mpmc-static-wait-turn = <2>;
ethernet at 20020000 {
compatible = "davicom,dm9000";
reg = <0 100 10000 100>; /* local address */
interrupts = <0x1>; /* ??? */
gpios = <&gpio-i2stx 0>;
}
};
};
};
This means you will need a driver for mpmc, but since all its code is only
run at boot time, it can live entirely in the init section.
Arnd
next prev parent reply other threads:[~2012-03-25 17:34 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-23 0:23 ioremap to a specific virtual address jonsmirl at gmail.com
2012-03-23 4:00 ` Nicolas Pitre
2012-03-23 4:17 ` jonsmirl at gmail.com
2012-03-23 4:28 ` Nicolas Pitre
2012-03-23 13:25 ` jonsmirl at gmail.com
2012-03-23 14:07 ` Arnd Bergmann
2012-03-23 14:32 ` jonsmirl at gmail.com
2012-03-23 14:49 ` Arnd Bergmann
2012-03-23 15:20 ` Arnd Bergmann
2012-03-23 18:28 ` jonsmirl at gmail.com
2012-03-23 19:31 ` Arnd Bergmann
2012-03-24 1:14 ` jonsmirl at gmail.com
2012-03-25 17:34 ` Arnd Bergmann [this message]
2012-03-26 8:47 ` Arnd Bergmann
2012-03-26 13:11 ` jonsmirl at gmail.com
2012-03-26 11:21 ` jonsmirl at gmail.com
2012-03-23 14:52 ` Roland Stigge
2012-03-23 15:05 ` jonsmirl at gmail.com
2012-03-23 15:12 ` Roland Stigge
2012-03-31 23:12 ` jonsmirl at gmail.com
2012-03-31 23:52 ` Nicolas Pitre
2012-04-01 0:08 ` jonsmirl at gmail.com
2012-04-01 19:46 ` Arnd Bergmann
2012-04-01 21:41 ` jonsmirl at gmail.com
2012-04-02 1:18 ` Nicolas Pitre
2012-04-02 7:31 ` Arnd Bergmann
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=201203251734.41780.arnd@arndb.de \
--to=arnd@arndb$(echo .)de \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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