* [PATCH 11/15] ARM: OMAP: timer: Interchange clksrc and clkevt for AM33XX
From: Bedia, Vaibhav @ 2012-11-06 14:33 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <87pq3s7wro.fsf@deeprootsystems.com>
Hi Kevin,
On Mon, Nov 05, 2012 at 23:33:07, Kevin Hilman wrote:
> "Bedia, Vaibhav" <vaibhav.bedia@ti.com> writes:
>
> > On Sat, Nov 03, 2012 at 18:34:30, Kevin Hilman wrote:
> > [...]
> >> >>
> >> >> Doesn't this also mean that you won't get timer wakeups
> >> >> in idle? Or are you keeping the domain where the clockevent is
> >> >> on during idle?
> >> >>
> >> >
> >> > The lowest idle state that we are targeting will have MPU powered
> >> > off with external memory in self-refresh mode. Peripheral domain
> >> > with the clockevent will be kept on.
> >>
> >> Is this a limitation of the hardware? or the software?
> >>
> >
> > Well, making the lowest idle state same as the suspend state will
> > require us to involve WKUP_M3 in the idle path and wakeup sources get
> > limited to the IPs in the WKUP domain alone. There's no IO daisy
> > chaining in AM33XX so that's one big difference compared to OMAP. The
> > other potential problem is that the IPC mechanism that we have uses
> > interrupts.
>
> It can still interrupt the M3, it's only the interrupt back to the MPU
> that is the issue, right? That being said, there's no reason it
> couldn't use polling in the idle path, right?
>
Yes we could use polling but I think we have a bigger problem in the
chip architecture.
> > Assuming that the lowest idle state, say Cx, is the same as the
> > suspend state, we'll need to communicate with the WKUP_M3 using
> > interrupts once we decide to enter Cx. I am not sure if we can do
> > something in the cpuidle implementation to work around the "interrupt
> > for idle" problem.
> >
> > We could probably not wait for an ACK when we want to enter Cx,
>
> why not?
>
> Are the response times from the M3 really up to 500ms (guessing based on
> the timeout you used in the suspend path.) That seems rather unlikely.
>
No 500ms is too high. Actual delays would be much lower, I need to check
with the design team on the expected number.
> Hmm, but as I think about it. Why does the MPU need to wait for an ACK
> at all? Why not just send the cmd and WFI?
>
I have myself being going back and forth on this. There are lot of things
that we do in software, DDR being one of them. We can't do some of the
DDR related stuff unless memory enter self-refresh AND EMIF gets disabled.
Doing so essentially means that the drivers have entered sort of suspend
state. Given this h/w limitation I don't see how we could handle without
impacting a running system.
> > but the problem of limited wakeup sources remains. If we let the
> > various drivers block the entry to Cx, since almost all the IPs are in
> > the peripheral domain a system which uses anything other than UART and
> > Timer in WKUP domain will probably never be able enter Cx.
>
> Even so, I think the system needs to be designed to hit the same power
> states in idle and suspend. Then, the states can be restricted based
> wakeup capabilities as you described. This would be easy to do in the
> runtime PM implementation for this device.
>
> IMO, assuming that idle will not be useful from the begining is leading
> down the path to poor design choices that will be much more difficult to
> fixup down the road in order to add idle support later. We need to
> design both idle and suspend at the same time.
>
Getting PER to transition on a running system is something I can't figure out.
Maybe MPU OFF is the lowest we can go.
> Also, don't forget about GPIO0. Systems could easily be built such that
> peripherals which want to wakeup but don't have native wakeup
> capabilities could use a GPIO in bank 0 to wake the system.
>
> Similarily, I2C0 is in WKUP, and brought out to capes, so some simple
> designs with with I2C devices on a cape might be perfectly capable of
> hitting deep power states in idle.
>
Ok this is interesting. AFAIK I2C wakeup requires the device to be operating
in slave mode. If so, is this something that's already supported on OMAP?
Regards,
Vaibhav
^ permalink raw reply
* [GIT PULL v4] Renesas ARM-based SoC for v3.8
From: Olof Johansson @ 2012-11-06 14:32 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352177853-6008-1-git-send-email-horms@verge.net.au>
On Tue, Nov 06, 2012 at 01:57:22PM +0900, Simon Horman wrote:
> Hi Olof, Hi Arnd,
>
> please consider the following SoC enhancements for 3.8.
>
> Change since v3:
> * Remove noise from "ARM: shmobile: Remove SH7367 support"
>
> ----------------------------------------------------------------
> The following changes since commit ddffeb8c4d0331609ef2581d84de4d763607bd37:
>
> Linux 3.7-rc1 (2012-10-14 14:41:04 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git soc
Pulled, thanks!
-Olof
^ permalink raw reply
* [PATCH v2] ARM: dts: AM33XX: Add usbss node
From: Felipe Balbi @ 2012-11-06 14:29 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352212178-8472-1-git-send-email-afzal@ti.com>
Hi,
On Tue, Nov 06, 2012 at 07:59:38PM +0530, Afzal Mohammed wrote:
> From: Ajay Kumar Gupta <ajay.gupta@ti.com>
>
> Device tree node for usbss on AM33XX. There are two musb
> controllers on am33xx platform so have port0-mode and
> port1-mode data.
>
> [afzal at ti.com: reg & interrupt property addition]
>
> Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
> Signed-off-by: Santhapuri, Damodar <damodar.santhapuri@ti.com>
> Signed-off-by: Ravi Babu <ravibabu@ti.com>
> Signed-off-by: Afzal Mohammed <afzal@ti.com>
to my eyes, this looks ok.
Reviewed-by: Felipe Balbi <balbi@ti.com>
> ---
>
> v2: node named as "usb"
>
> Depends on "usb: musb: dsps: dt binding - add resources, example"
> (https://patchwork.kernel.org/patch/1704691/)
>
> arch/arm/boot/dts/am33xx.dtsi | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
> index 5dfd682..20a3f29 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -321,5 +321,22 @@
> ti,hwmods = "spi1";
> status = "disabled";
> };
> +
> + usb at 47400000 {
> + compatible = "ti,musb-am33xx";
> + reg = <0x47400000 0x1000 /* usbss */
> + 0x47401000 0x800 /* musb instance 0 */
> + 0x47401800 0x800>; /* musb instance 1 */
> + interrupts = <17 /* usbss */
> + 18 /* musb instance 0 */
> + 19>; /* musb instance 1 */
> + multipoint = <1>;
> + num-eps = <16>;
> + ram-bits = <12>;
> + port0-mode = <3>;
> + port1-mode = <3>;
> + power = <250>;
> + ti,hwmods = "usb_otg_hs";
> + };
> };
> };
> --
> 1.7.12
>
--
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121106/34961b09/attachment.sig>
^ permalink raw reply
* [PATCH v2] ARM: dts: AM33XX: Add usbss node
From: Afzal Mohammed @ 2012-11-06 14:29 UTC (permalink / raw)
To: linux-arm-kernel
From: Ajay Kumar Gupta <ajay.gupta@ti.com>
Device tree node for usbss on AM33XX. There are two musb
controllers on am33xx platform so have port0-mode and
port1-mode data.
[afzal at ti.com: reg & interrupt property addition]
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Santhapuri, Damodar <damodar.santhapuri@ti.com>
Signed-off-by: Ravi Babu <ravibabu@ti.com>
Signed-off-by: Afzal Mohammed <afzal@ti.com>
---
v2: node named as "usb"
Depends on "usb: musb: dsps: dt binding - add resources, example"
(https://patchwork.kernel.org/patch/1704691/)
arch/arm/boot/dts/am33xx.dtsi | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index 5dfd682..20a3f29 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -321,5 +321,22 @@
ti,hwmods = "spi1";
status = "disabled";
};
+
+ usb at 47400000 {
+ compatible = "ti,musb-am33xx";
+ reg = <0x47400000 0x1000 /* usbss */
+ 0x47401000 0x800 /* musb instance 0 */
+ 0x47401800 0x800>; /* musb instance 1 */
+ interrupts = <17 /* usbss */
+ 18 /* musb instance 0 */
+ 19>; /* musb instance 1 */
+ multipoint = <1>;
+ num-eps = <16>;
+ ram-bits = <12>;
+ port0-mode = <3>;
+ port1-mode = <3>;
+ power = <250>;
+ ti,hwmods = "usb_otg_hs";
+ };
};
};
--
1.7.12
^ permalink raw reply related
* [GIT PULL v2] Renesas ARM-based SoC defconfig for v3.8
From: Olof Johansson @ 2012-11-06 14:19 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351731731-8435-1-git-send-email-horms@verge.net.au>
On Thu, Nov 01, 2012 at 09:02:08AM +0800, Simon Horman wrote:
> Hi Olof, Hi Arnd,
>
> please consider the following defconfig enhancements for 3.8.
>
> I will work on the suggestions by Arnd to reduce the number
> of defconfigs for shmobile - in essence moving towards one or
> two generic configs rather than per-board configs. However,
> this seems to be somewhat non-trivial and in the mean time
> I would like to keep updating the existing defcoings.
>
> ----------------------------------------------------------------
> The following changes since commit ddffeb8c4d0331609ef2581d84de4d763607bd37:
>
> Linux 3.7-rc1 (2012-10-14 14:41:04 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git defconfig
Thanks, pulled into next/boards with the other branch.
-Olof
^ permalink raw reply
* [GIT PULL 1/6] DaVinci fixes for v3.8
From: Olof Johansson @ 2012-11-06 14:11 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351620701-16516-1-git-send-email-nsekhar@ti.com>
On Tue, Oct 30, 2012 at 11:41:36PM +0530, Sekhar Nori wrote:
> The following changes since commit 6f0c0580b70c89094b3422ba81118c7b959c7556:
>
> Linux 3.7-rc2 (2012-10-20 12:11:32 -0700)
>
> are available in the git repository at:
>
> git://gitorious.org/linux-davinci/linux-davinci.git tags/davinci-for-v3.8/fixes
Pulled, thanks.
-Olof
^ permalink raw reply
* [GIT PULL v3] Renesas ARM-based SoC boards for v3.8
From: Olof Johansson @ 2012-11-06 14:07 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351730411-1874-1-git-send-email-horms@verge.net.au>
On Thu, Nov 01, 2012 at 08:40:03AM +0800, Simon Horman wrote:
> Hi Olof, Hi Arnd,
>
> please consider the following board enhancements for 3.8.
>
> This differs from v2 of this pull request in that:
> * Several patches have been moved to the soc branch which
> I will send a pull request for shortly.
> - ARM: shmobile: r8a7779: add HSPI clock support
> - ARM: shmobile: r8a7779: add I2C clock support
> - ARM: shmobile: r8a7779: add I2C driver support
> - ARM: shmobile: r8a7740: Enable PMU
> * Several new patches have been added.
> - ARM: shmobile: Remove G4EVM machine support
> - ARM: shmobile: Remove G3EVM machine support
>
> ---------------------------------------------------------------
> The following changes since commit ddffeb8c4d0331609ef2581d84de4d763607bd37:
>
> Linux 3.7-rc1 (2012-10-14 14:41:04 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git boards
Thanks, pulled.
-Olof
^ permalink raw reply
* [GIT PULL][for 3.8] pull request from upload/board in arch-pxa git tree
From: Olof Johansson @ 2012-11-06 14:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAN1soZzhb361Gs9JVmhkjqqcr6FkGg9MVO_n9Tv29F==HdhwQQ@mail.gmail.com>
On Sun, Oct 28, 2012 at 07:59:54AM +0800, Haojian Zhuang wrote:
> Hi Arnd & Olof,
>
> Please help to pull upload/board branch from arch-pxa git tree.
>
> Best Regards
> Haojian
>
> The following changes since commit 6f0c0580b70c89094b3422ba81118c7b959c7556:
>
> Linux 3.7-rc2 (2012-10-20 12:11:32 -0700)
>
> are available in the git repository at:
>
> git://github.com/hzhuang1/linux.git upload/board
>
> for you to fetch changes up to f534958f092bab25eadc25dbfa01657918239b77:
>
> ARM: pxa: use module_platform_driver macro (2012-10-26 17:25:15 +0800)
>
> ----------------------------------------------------------------
> Paul Parsons (1):
> ARM: pxa2xx: Remove EXPERIMENTAL dependency from spi-pxa2xx driver
This is a SPI driver change, and should either go through or be acked by that
maintainer. In this particular case, there's been several series of the
EXPERIMENTAL removals, and I think Kees Cook has one that removes it for all
options in one go. So please ack that patch instead.
> Srinivas Kandagatla (1):
> ARM: pxa: use module_platform_driver macro
This looks like a cleanup, so I have cherry-picked it into our cleanup branch.
Based on the above, no need to resend this, but please follow up on the
EXPERIMENTAL cleanup by Kees.
-Olof
^ permalink raw reply
* [PATCH 08/15] ARM: OMAP2+: hwmod: Fix the omap_hwmod_addr_space for CPGMAC0
From: Bedia, Vaibhav @ 2012-11-06 13:56 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <509915B6.1070405@ti.com>
Hi Benoit,
On Tue, Nov 06, 2012 at 19:20:46, Cousson, Benoit wrote:
> Hi Vaibhav & Vaibhav,
>
> On 11/06/2012 02:46 PM, Bedia, Vaibhav wrote:
> > On Tue, Nov 06, 2012 at 18:38:08, Hiremath, Vaibhav wrote:
> >> On Tue, Nov 06, 2012 at 15:39:14, Bedia, Vaibhav wrote:
> >>> On Tue, Nov 06, 2012 at 14:59:45, Hiremath, Vaibhav wrote:
> >>> [...]
> >>>>>
> >>>>> Ok I checked this one. The change I made was indirectly fixing another
> >>>>> issue with the AM33xx hwmod data. am33xx_cpgmac0_addr_space[] has two
> >>>>> entries and the SYSC register is part of the second entry. The function
> >>>>> _find_mpu_rt_addr_space in omap_hwmod.c looks for the first entry with
> >>>>> the flag ADDR_TYPE_RT flag. The change I made indirectly made the second
> >>>>> entry in am33xx_cpgmac0_addr_space[] become the first memory space with
> >>>>> the ADDR_TYPE_RT flag. Due to this the hwmod code wrote to the correct
> >>>>> SYSC address of CPGMAC0 and the IP went to standby during bootup.
> >>>>> After changing the order of the entries in am33xx_cpgmac0_addr_space[]
> >>>>> things work fine.
> >>>>>
> >>>>
> >>>> Good catch.
> >>>>
> >>>> Just a side note on this, driver expects the addresses in this order
> >>>> only, first SS and then WR.
> >>>>
> >>>
> >>> Sorry I didn't understand your comment. For HWMOD code to work as expected,
> >>> we need to change the order.
> >>
> >> Why do you want to change the order? Just specify "ADDR_TYPE_RT", that
> >> should be it.
> >>
> >
> > The problem is that the memory space without the SYSC comes first and is labeled
> > as ADDR_TYPE_RT. I think this is not correct and hence either we change the order
> > or remove the flag from the first entry. If we do the latter then taking the logic
> > of putting in the flag only for memory spaces with SYSC further we need to fixup
> > the entries for ephrpwm0/1/2 and ecap0/1/2.
>
> The order should not matter, just use ADDR_TYPE_RT for the relevant
> entry. I have a patch ongoing to remove this flag for the non-SYSC entry
> to avoid this kind of confusion.
> The name should probably be changed as well to reflect that at some point.
> Since these entries will be removed anyway with pure DT boot, that
> should be a temporary issue.
>
Thanks for the clarification. I'll make the change accordingly.
Regards,
Vaibhav
^ permalink raw reply
* [GIT PULL][for 3.7] pull request from upload/fix in arch-pxa git tree
From: Olof Johansson @ 2012-11-06 13:55 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAN1soZxgXGFNqnFMM5ZaAf6tpbxPBFdmr8BqHJpOxUGVr08W=w@mail.gmail.com>
On Sun, Oct 28, 2012 at 07:57:55AM +0800, Haojian Zhuang wrote:
> Hi Olof & Arnd,
>
> Please help to pull upload/fix branch from arch-pxa git tree.
>
> Best Regards
> Haojian
>
> The following changes since commit 6f0c0580b70c89094b3422ba81118c7b959c7556:
>
> Linux 3.7-rc2 (2012-10-20 12:11:32 -0700)
>
> are available in the git repository at:
>
> git://github.com/hzhuang1/linux.git upload/fix
Thanks, pulled into fixes.
-Olof
^ permalink raw reply
* [PATCH 1/5] ARM: EXYNOS: fix the hotplug for Cortex-A15
From: Lorenzo Pieralisi @ 2012-11-06 13:55 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <5098FFBE.4080604@ti.com>
On Tue, Nov 06, 2012 at 12:17:02PM +0000, Santosh Shilimkar wrote:
> On Tuesday 06 November 2012 12:12 AM, Abhilash Kesavan wrote:
> > The sequence of cpu_enter_lowpower() for Cortex-A15
> > is different from the sequence for Cortex-A9.
> Are you sure ? Apart from integrated cache vs external, there
> should be no change. And L2 doesn't need to come into picture
> while powering down just a CPU.
Reiterating Santosh point in here. v7 shutdown procedure is and has to
be identical across all v7 cores. There is not such a thing as "A15
specific" shutdown procedure.
Embedded L2 will come into the picture on multi-cluster systems, for the
time being L2 must not be flushed when hotplugging a CPU in a single cluster
so the LoUIS API is to be used here.
> > This patch implements cpu_enter_lowpower() for EXYNOS5
> > SoC which has Cortex-A15 cores.
> >
> > Signed-off-by: Changhwan Youn <chaos.youn@samsung.com>
> > Cc: Russell King <rmk+kernel@arm.linux.org.uk>
> > Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
> > Tested-by: Abhilash Kesavan <a.kesavan@samsung.com>
> > ---
> > arch/arm/mach-exynos/hotplug.c | 45 +++++++++++++++++++++++++++++++++++++--
> > 1 files changed, 42 insertions(+), 3 deletions(-)
> >
> > diff --git a/arch/arm/mach-exynos/hotplug.c b/arch/arm/mach-exynos/hotplug.c
> > index f4d7dd2..8c06c4f 100644
> > --- a/arch/arm/mach-exynos/hotplug.c
> > +++ b/arch/arm/mach-exynos/hotplug.c
> > @@ -20,10 +20,11 @@
> > #include <asm/smp_plat.h>
> >
> > #include <mach/regs-pmu.h>
> > +#include <plat/cpu.h>
> >
> > #include "common.h"
> >
> > -static inline void cpu_enter_lowpower(void)
> > +static inline void cpu_enter_lowpower_a9(void)
> > {
> > unsigned int v;
> >
> > @@ -45,6 +46,35 @@ static inline void cpu_enter_lowpower(void)
> > : "cc");
> > }
> >
> > +static inline void cpu_enter_lowpower_a15(void)
> > +{
> > + unsigned int v;
> > +
> > + asm volatile(
> > + " mrc p15, 0, %0, c1, c0, 0\n"
> > + " bic %0, %0, %1\n"
> > + " mcr p15, 0, %0, c1, c0, 0\n"
> > + : "=&r" (v)
> > + : "Ir" (CR_C)
> > + : "cc");
> > +
> > + flush_cache_all();
> > +
> Why are flushing all the cache levels ?
> flush_kern_louis() should be enough for CPU power
> down.
Agree with Santosh again.
>
> > + asm volatile(
> > + /*
> > + * Turn off coherency
> > + */
> > + " mrc p15, 0, %0, c1, c0, 1\n"
> > + " bic %0, %0, %1\n"
> > + " mcr p15, 0, %0, c1, c0, 1\n"
> > + : "=&r" (v)
> > + : "Ir" (0x40)
> > + : "cc");
> > +
> > + isb();
> > + dsb();
> > +}
> > +
> The above sequence should work on A9 as well. In general you should have
> CPU power down code under one code block and avoid making use of stack
> in between. Otherwise you will end up with stack corruption because of
> the memory view change after C bit is disabled.
>
> Regards
> Santosh
The above sequence does not work on A9 since A9 does not look-up the
caches when the C bit is cleared. It is an accident waiting to happen,
as Santosh explained.
The sequence:
- clear C bit
- clean L1
- exit SMP
must be written in assembly with no access to any data whatsoever, no stack,
_nothing_.
There is some code in the works to consolidate this procedure once for all but
all bits and pieces are already in the kernel.
Lorenzo
^ permalink raw reply
* [PATCH] ARM: dts: add missing ux500 device trees
From: Fabio Baltieri @ 2012-11-06 13:51 UTC (permalink / raw)
To: linux-arm-kernel
This adds hrefprev60, hrefv60plus and ccu9540 to device trees compiled
during build.
Cc: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
---
Hi Lee,
this applies on top of your ste-dt-for-next and allows you to remove manual
device-tree building in your scripts.
Please let me know if you think these patches should be pushed somewhere in the
gerrit or in some list - this stacks on top of your so you I don't think it
makes sense for me to subit it directly to a public list.
Fabio
arch/arm/boot/dts/Makefile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index f37cf9f..01433b9 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -74,7 +74,10 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
am335x-evm.dtb \
am335x-bone.dtb
dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb
-dtb-$(CONFIG_ARCH_U8500) += snowball.dtb
+dtb-$(CONFIG_ARCH_U8500) += snowball.dtb \
+ hrefprev60.dtb \
+ hrefv60plus.dtb \
+ ccu9540.dtb
dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
r8a7740-armadillo800eva.dtb \
sh73a0-kzm9g.dtb
--
1.7.12.1
^ permalink raw reply related
* [PATCH 08/15] ARM: OMAP2+: hwmod: Fix the omap_hwmod_addr_space for CPGMAC0
From: Benoit Cousson @ 2012-11-06 13:50 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <B5906170F1614E41A8A28DE3B8D121433EC05260@DBDE01.ent.ti.com>
Hi Vaibhav & Vaibhav,
On 11/06/2012 02:46 PM, Bedia, Vaibhav wrote:
> On Tue, Nov 06, 2012 at 18:38:08, Hiremath, Vaibhav wrote:
>> On Tue, Nov 06, 2012 at 15:39:14, Bedia, Vaibhav wrote:
>>> On Tue, Nov 06, 2012 at 14:59:45, Hiremath, Vaibhav wrote:
>>> [...]
>>>>>
>>>>> Ok I checked this one. The change I made was indirectly fixing another
>>>>> issue with the AM33xx hwmod data. am33xx_cpgmac0_addr_space[] has two
>>>>> entries and the SYSC register is part of the second entry. The function
>>>>> _find_mpu_rt_addr_space in omap_hwmod.c looks for the first entry with
>>>>> the flag ADDR_TYPE_RT flag. The change I made indirectly made the second
>>>>> entry in am33xx_cpgmac0_addr_space[] become the first memory space with
>>>>> the ADDR_TYPE_RT flag. Due to this the hwmod code wrote to the correct
>>>>> SYSC address of CPGMAC0 and the IP went to standby during bootup.
>>>>> After changing the order of the entries in am33xx_cpgmac0_addr_space[]
>>>>> things work fine.
>>>>>
>>>>
>>>> Good catch.
>>>>
>>>> Just a side note on this, driver expects the addresses in this order
>>>> only, first SS and then WR.
>>>>
>>>
>>> Sorry I didn't understand your comment. For HWMOD code to work as expected,
>>> we need to change the order.
>>
>> Why do you want to change the order? Just specify "ADDR_TYPE_RT", that
>> should be it.
>>
>
> The problem is that the memory space without the SYSC comes first and is labeled
> as ADDR_TYPE_RT. I think this is not correct and hence either we change the order
> or remove the flag from the first entry. If we do the latter then taking the logic
> of putting in the flag only for memory spaces with SYSC further we need to fixup
> the entries for ephrpwm0/1/2 and ecap0/1/2.
The order should not matter, just use ADDR_TYPE_RT for the relevant
entry. I have a patch ongoing to remove this flag for the non-SYSC entry
to avoid this kind of confusion.
The name should probably be changed as well to reflect that at some point.
Since these entries will be removed anyway with pure DT boot, that
should be a temporary issue.
Regards,
Benoit
^ permalink raw reply
* scheduler clock for MXS [Was: Re: Wakeup latency measured with SCHED_TRACER depends on HZ]
From: Shawn Guo @ 2012-11-06 13:49 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121106101229.GN28327@n2100.arm.linux.org.uk>
On Tue, Nov 06, 2012 at 10:12:29AM +0000, Russell King - ARM Linux wrote:
> > [ 0.000000] sched_clock: 16 bits at 32kHz, resolution 31250ns, wraps every 20
> > 47ms
>
> So where are you setting this up? My guess is it's after time_init()
> has done its stuff.
It gets set up in machine_desc->timer->init() which is called right
in time_init() just before sched_clock_postinit().
Shawn
^ permalink raw reply
* [PATCH RESEND 10/10] ARM: dts: AM33XX: Add push-buttons device tree data to am335x-evmsk
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add gpio based push buttons device tree data to am335x-evmsk device
by adding all the necessary parameters like key-code, gpios and etc.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-evmsk.dts | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 0f825dd..f5a6162 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -139,6 +139,37 @@
default-state = "off";
};
};
+
+ gpio_buttons: gpio_buttons at 0 {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ switch at 1 {
+ label = "button0";
+ linux,code = <0x100>;
+ gpios = <&gpio3 3 0>;
+ };
+
+ switch at 2 {
+ label = "button1";
+ linux,code = <0x101>;
+ gpios = <&gpio3 2 0>;
+ };
+
+ switch at 3 {
+ label = "button2";
+ linux,code = <0x102>;
+ gpios = <&gpio1 30 0>;
+ gpio-key,wakeup;
+ };
+
+ switch at 4 {
+ label = "button3";
+ linux,code = <0x103>;
+ gpios = <&gpio3 5 0>;
+ };
+ };
};
/include/ "tps65910.dtsi"
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 09/10] ARM: dts: AM33XX: Add pinmux configuration for gpio-keys to EVMSK
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add pinmux configurations for gpio based keys to am335x-evmsk. In
this patch, only single named mode/state is added and these pins
are configured during pinctrl driver initialization.
Default mode is nothing but the values required for the module during
active state. With this configurations module is functional as
expected.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-evmsk.dts | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 7262fa8..0f825dd 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -32,7 +32,7 @@
am33xx_pinmux: pinmux at 44e10800 {
pinctrl-names = "default";
- pinctrl-0 = <&user_leds_s0>;
+ pinctrl-0 = <&user_leds_s0 &gpio_keys_s0>;
user_leds_s0: user_leds_s0 {
pinctrl-single,pins = <
@@ -42,6 +42,15 @@
0x1c 0x7 /* gpmc_ad7.gpio1_7, OUTPUT | MODE7 */
>;
};
+
+ gpio_keys_s0: gpio_keys_s0 {
+ pinctrl-single,pins = <
+ 0x94 0x27 /* gpmc_oen_ren.gpio2_3, INPUT | MODE7 */
+ 0x90 0x27 /* gpmc_advn_ale.gpio2_2, INPUT | MODE7 */
+ 0x70 0x27 /* gpmc_wait0.gpio0_30, INPUT | MODE7 */
+ 0x9c 0x27 /* gpmc_ben0_cle.gpio2_5, INPUT | MODE7 */
+ >;
+ };
};
ocp {
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 08/10] ARM: dts: AM33XX: Add user-leds device tree data to am335x-evmsk
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add gpio-leds device tree data to am335x-evmsk device to enable gpio
based user-leds (USR0, USR1, USR2 and USR3) present on am335x starter
kit.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-evmsk.dts | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 659ec5b..7262fa8 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -100,6 +100,36 @@
regulator-name = "lis3_reg";
regulator-boot-on;
};
+
+ leds {
+ compatible = "gpio-leds";
+
+ led at 1 {
+ label = "evmsk:green:usr0";
+ gpios = <&gpio2 4 0>;
+ default-state = "off";
+ };
+
+ led at 2 {
+ label = "evmsk:green:usr1";
+ gpios = <&gpio2 5 0>;
+ default-state = "off";
+ };
+
+ led at 3 {
+ label = "evmsk:green:mmc0";
+ gpios = <&gpio2 6 0>;
+ linux,default-trigger = "mmc0";
+ default-state = "off";
+ };
+
+ led at 4 {
+ label = "evmsk:green:heartbeat";
+ gpios = <&gpio2 7 0>;
+ linux,default-trigger = "heartbeat";
+ default-state = "off";
+ };
+ };
};
/include/ "tps65910.dtsi"
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 07/10] ARM: dts: AM33XX: Add pinmux configuration for gpio-leds to EVMSK
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add pinmux configurations for gpio based volume keys to am335x-evmsk.
In this patch, only single named mode/state is added and these pins
are configured during pinctrl driver initialization.
Default mode is nothing but the values required for the module during
active state. With this configurations module is functional as
expected.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-evmsk.dts | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 6f53879..659ec5b 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -30,6 +30,20 @@
reg = <0x80000000 0x10000000>; /* 256 MB */
};
+ am33xx_pinmux: pinmux at 44e10800 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&user_leds_s0>;
+
+ user_leds_s0: user_leds_s0 {
+ pinctrl-single,pins = <
+ 0x10 0x7 /* gpmc_ad4.gpio1_4, OUTPUT | MODE7 */
+ 0x14 0x7 /* gpmc_ad5.gpio1_5, OUTPUT | MODE7 */
+ 0x18 0x7 /* gpmc_ad6.gpio1_6, OUTPUT | MODE7 */
+ 0x1c 0x7 /* gpmc_ad7.gpio1_7, OUTPUT | MODE7 */
+ >;
+ };
+ };
+
ocp {
uart1: serial at 44e09000 {
status = "okay";
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 06/10] ARM: dts: AM33XX: Add user-leds device tree data to am335x-bone
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add gpio-leds device tree data to am335x-bone device to enable gpio
based user-leds (USR0, USR1, USR2 and USR3) present on BeagleBone.
[koen at dominion.thruhere.net: led0, led1 suggested by koen]
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-bone.dts | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts
index 1aac58b..2c33888 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -53,6 +53,36 @@
};
};
+
+ leds {
+ compatible = "gpio-leds";
+
+ led at 2 {
+ label = "beaglebone:green:heartbeat";
+ gpios = <&gpio2 21 0>;
+ linux,default-trigger = "heartbeat";
+ default-state = "off";
+ };
+
+ led at 3 {
+ label = "beaglebone:green:mmc0";
+ gpios = <&gpio2 22 0>;
+ linux,default-trigger = "mmc0";
+ default-state = "off";
+ };
+
+ led at 4 {
+ label = "beaglebone:green:usr2";
+ gpios = <&gpio2 23 0>;
+ default-state = "off";
+ };
+
+ led at 5 {
+ label = "beaglebone:green:usr3";
+ gpios = <&gpio2 24 0>;
+ default-state = "off";
+ };
+ };
};
/include/ "tps65217.dtsi"
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 05/10] ARM: dts: AM33XX: Add pinmux configuration for user-leds to BONE
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add pinmux configurations for gpio based user-keys to am335x-bone.
In this patch, only single named mode/state is added and these pins
are configured during pinctrl driver initialization.
Default mode is nothing but the values required for the module during
active state. With this configurations module is functional as
expected.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-bone.dts | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts
index 91eee97..1aac58b 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -24,6 +24,20 @@
reg = <0x80000000 0x10000000>; /* 256 MB */
};
+ am33xx_pinmux: pinmux at 44e10800 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&user_leds_s0>;
+
+ user_leds_s0: user_leds_s0 {
+ pinctrl-single,pins = <
+ 0x54 0x7 /* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
+ 0x58 0x17 /* gpmc_a6.gpio1_22, OUTPUT_PULLUP | MODE7 */
+ 0x5c 0x7 /* gpmc_a7.gpio1_23, OUTPUT | MODE7 */
+ 0x60 0x17 /* gpmc_a8.gpio1_24, OUTPUT_PULLUP | MODE7 */
+ >;
+ };
+ };
+
ocp {
uart1: serial at 44e09000 {
status = "okay";
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 04/10] ARM: dts: AM33XX: Add volume-keys device tree data to am335x-evm
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add gpio based volume keys device tree data to am335x-evm by adding
all the required parameters like keycode, gpios and etc.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-evm.dts | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index e087b87..9f65f17 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -137,6 +137,27 @@
0x0101001c /* ENTER */
0x0201006c>; /* DOWN */
};
+
+ gpio_keys: volume_keys at 0 {
+ compatible = "gpio-keys";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ autorepeat;
+
+ switch at 9 {
+ label = "volume-up";
+ linux,code = <115>;
+ gpios = <&gpio1 2 1>;
+ gpio-key,wakeup;
+ };
+
+ switch at 10 {
+ label = "volume-down";
+ linux,code = <114>;
+ gpios = <&gpio1 3 1>;
+ gpio-key,wakeup;
+ };
+ };
};
/include/ "tps65910.dtsi"
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 03/10] ARM: dts: AM33XX: Add pinmux configuration for volume-keys to EVM
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add pinmux configurations for gpio volume keys. In this patch, only
single named mode/state is added and these pins are configured during
pinctrl driver initialization.
Default mode is nothing but the values required for the module during
active state. With this configurations module is functional as
expected.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-evm.dts | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 8076e66..e087b87 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -26,7 +26,7 @@
am33xx_pinmux: pinmux at 44e10800 {
pinctrl-names = "default";
- pinctrl-0 = <&matrix_keypad_s0>;
+ pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>;
matrix_keypad_s0: matrix_keypad_s0 {
pinctrl-single,pins = <
@@ -37,6 +37,13 @@
0x6c 0x27 /* gpmc_a11.gpio1_27, INPUT | MODE7 */
>;
};
+
+ volume_keys_s0: volume_keys_s0 {
+ pinctrl-single,pins = <
+ 0x150 0x27 /* spi0_sclk.gpio0_2, INPUT | MODE7 */
+ 0x154 0x27 /* spi0_d0.gpio0_3, INPUT | MODE7 */
+ >;
+ };
};
ocp {
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 02/10] ARM: dts: AM33XX: Add matrix keypad device tree data to am335x-evm
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add matrix keypad device tree data to am335x-evm by adding all
the necessary parameters like keymap, row & column gpios and etc.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-evm.dts | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 9199456..8076e66 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -110,6 +110,26 @@
regulator-name = "lis3_reg";
regulator-boot-on;
};
+
+ matrix_keypad: matrix_keypad at 0 {
+ compatible = "gpio-matrix-keypad";
+ debounce-delay-ms = <5>;
+ col-scan-delay-us = <2>;
+
+ row-gpios = <&gpio2 25 0 /* Bank1, pin25 */
+ &gpio2 26 0 /* Bank1, pin26 */
+ &gpio2 27 0>; /* Bank1, pin27 */
+
+ col-gpios = <&gpio2 21 0 /* Bank1, pin21 */
+ &gpio2 22 0>; /* Bank1, pin22 */
+
+ linux,keymap = <0x0000008b /* MENU */
+ 0x0100009e /* BACK */
+ 0x02000069 /* LEFT */
+ 0x0001006a /* RIGHT */
+ 0x0101001c /* ENTER */
+ 0x0201006c>; /* DOWN */
+ };
};
/include/ "tps65910.dtsi"
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 01/10] ARM: dts: AM33XX: Add pinmux configuration for matrix keypad to EVM
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1352209718-5586-1-git-send-email-anilkumar@ti.com>
Add pinmux configurations for gpio matrix keypad. In this patch, only
single named mode/state is added and these pins are configured during
pinctrl driver initialization.
Default mode is nothing but the values required for the module during
active state. With this configurations module is functional as
expected.
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
---
arch/arm/boot/dts/am335x-evm.dts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 513284f..9199456 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -24,6 +24,21 @@
reg = <0x80000000 0x10000000>; /* 256 MB */
};
+ am33xx_pinmux: pinmux at 44e10800 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&matrix_keypad_s0>;
+
+ matrix_keypad_s0: matrix_keypad_s0 {
+ pinctrl-single,pins = <
+ 0x54 0x7 /* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
+ 0x58 0x7 /* gpmc_a6.gpio1_22, OUTPUT | MODE7 */
+ 0x64 0x27 /* gpmc_a9.gpio1_25, INPUT | MODE7 */
+ 0x68 0x27 /* gpmc_a10.gpio1_26, INPUT | MODE7 */
+ 0x6c 0x27 /* gpmc_a11.gpio1_27, INPUT | MODE7 */
+ >;
+ };
+ };
+
ocp {
uart1: serial at 44e09000 {
status = "okay";
--
1.7.9.5
^ permalink raw reply related
* [PATCH RESEND 00/10] ARM: dts: AM33XX: Add device tree data
From: AnilKumar Ch @ 2012-11-06 13:48 UTC (permalink / raw)
To: linux-arm-kernel
Add device tree date for GPIO based various drivers matrix keypad,
volume keys, push buttons and use leds accross three AM33XX devices
viz EVM, BeagleBone and Starter Kit.
To make it functional this series also adds pinctrl data for all
the GPIOs used by various drivers. In this series only default state
pinmux/conf settings are added because of sleep/idle state pinctrl
values are not available.
These patches are based on linux-omap-dt:for_3.8/dts_part2 tree and
these were tested on am33xx devices according to added functionality.
Change log:
- Rebased on for_3.8/dts_part2
AnilKumar Ch (10):
ARM: dts: AM33XX: Add pinmux configuration for matrix keypad to EVM
ARM: dts: AM33XX: Add matrix keypad device tree data to am335x-evm
ARM: dts: AM33XX: Add pinmux configuration for volume-keys to EVM
ARM: dts: AM33XX: Add volume-keys device tree data to am335x-evm
ARM: dts: AM33XX: Add pinmux configuration for user-leds to BONE
ARM: dts: AM33XX: Add user-leds device tree data to am335x-bone
ARM: dts: AM33XX: Add pinmux configuration for gpio-leds to EVMSK
ARM: dts: AM33XX: Add user-leds device tree data to am335x-evmsk
ARM: dts: AM33XX: Add pinmux configuration for gpio-keys to EVMSK
ARM: dts: AM33XX: Add push-buttons device tree data to am335x-evmsk
arch/arm/boot/dts/am335x-bone.dts | 44 +++++++++++++++++++
arch/arm/boot/dts/am335x-evm.dts | 63 +++++++++++++++++++++++++++
arch/arm/boot/dts/am335x-evmsk.dts | 84 ++++++++++++++++++++++++++++++++++++
3 files changed, 191 insertions(+)
--
1.7.9.5
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox