* [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10
@ 2013-04-05 6:12 Simon Horman
2013-04-05 6:12 ` [PATCH 1/3] ARM: shmobile: r8a7778: remove pointless PLATFORM_INFO() Simon Horman
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Simon Horman @ 2013-04-05 6:12 UTC (permalink / raw)
To: linux-arm-kernel
Hi Olof, Hi Arnd,
The following changes since commit 8585deb18580d04209a2986430aa0959ef38fce2:
ARM: shmobile: r8a7790 SoC 64-bit DT support (2013-04-02 11:02:21 +0900)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas tags/renesas-soc-r8a7778-for-v3.10
for you to fetch changes up to 524219146a89aee5366326c225ccd71231419d89:
ARM: shmobile: R8A7778: add Ether support (2013-04-05 10:57:05 +0900)
----------------------------------------------------------------
Renesas ARM r8a7778 SoC update for v3.10
Update to the r8a7778 SoC:
* Add SH Ethernet support
* Add r8a7778_init_irq_extpin() to allow configuration of IRQ0 - IRQ3
- This is a requirement for SMSC ethernet support
* Cleanup: remove PLATFORM_INFO macro
This pull request is based on:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas renesas-soc2-for-v3.10
----------------------------------------------------------------
Kuninori Morimoto (2):
ARM: shmobile: r8a7778: remove pointless PLATFORM_INFO()
ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin()
Sergei Shtylyov (1):
ARM: shmobile: R8A7778: add Ether support
arch/arm/mach-shmobile/clock-r8a7778.c | 3 +
arch/arm/mach-shmobile/include/mach/r8a7778.h | 4 ++
arch/arm/mach-shmobile/setup-r8a7778.c | 83 ++++++++++++++++++++-----
3 files changed, 74 insertions(+), 16 deletions(-)
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 1/3] ARM: shmobile: r8a7778: remove pointless PLATFORM_INFO() 2013-04-05 6:12 [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 Simon Horman @ 2013-04-05 6:12 ` Simon Horman 2013-04-05 6:12 ` [PATCH 2/3] ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin() Simon Horman ` (2 subsequent siblings) 3 siblings, 0 replies; 10+ messages in thread From: Simon Horman @ 2013-04-05 6:12 UTC (permalink / raw) To: linux-arm-kernel From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> remove pointless PLATFORM_INFO() macro from setup-r8a7778, and, used original platform_device_register_xxx() Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Acked-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- arch/arm/mach-shmobile/setup-r8a7778.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index 01c62be..57d6b0e 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c @@ -78,21 +78,13 @@ static struct sh_timer_config sh_tmu1_platform_data = { .clocksource_rating = 200, }; -#define PLATFORM_INFO(n, i) \ -{ \ - .parent = &platform_bus, \ - .name = #n, \ - .id = i, \ - .res = n ## i ## _resources, \ - .num_res = ARRAY_SIZE(n ## i ##_resources), \ - .data = &n ## i ##_platform_data, \ - .size_data = sizeof(n ## i ## _platform_data), \ -} - -struct platform_device_info platform_devinfo[] = { - PLATFORM_INFO(sh_tmu, 0), - PLATFORM_INFO(sh_tmu, 1), -}; +#define r8a7778_register_tmu(idx) \ + platform_device_register_resndata( \ + &platform_bus, "sh_tmu", idx, \ + sh_tmu##idx##_resources, \ + ARRAY_SIZE(sh_tmu##idx##_resources), \ + &sh_tmu##idx##_platform_data, \ + sizeof(sh_tmu##idx##_platform_data)) void __init r8a7778_add_standard_devices(void) { @@ -114,8 +106,8 @@ void __init r8a7778_add_standard_devices(void) &scif_platform_data[i], sizeof(struct plat_sci_port)); - for (i = 0; i < ARRAY_SIZE(platform_devinfo); i++) - platform_device_register_full(&platform_devinfo[i]); + r8a7778_register_tmu(0); + r8a7778_register_tmu(1); } #define INT2SMSKCR0 0x82288 /* 0xfe782288 */ -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin() 2013-04-05 6:12 [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 Simon Horman 2013-04-05 6:12 ` [PATCH 1/3] ARM: shmobile: r8a7778: remove pointless PLATFORM_INFO() Simon Horman @ 2013-04-05 6:12 ` Simon Horman 2013-10-02 6:13 ` [PATCH 2/3] ARM: shmobile: r8a7778: add renesas_intc_irqpin support on DT Kuninori Morimoto ` (3 more replies) 2013-04-05 6:12 ` [PATCH 3/3] ARM: shmobile: R8A7778: add Ether support Simon Horman 2013-04-09 12:53 ` [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 Arnd Bergmann 3 siblings, 4 replies; 10+ messages in thread From: Simon Horman @ 2013-04-05 6:12 UTC (permalink / raw) To: linux-arm-kernel From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> This patch adds r8a7778_init_irq_extpin() for IRQ0 - IRQ3. But this patch doesn't enable DT settings on r8a7778.dts, because R8A7778 chip external IRQ depends on IRQ0 - IRQ3 pin encoding which came from platform board implementation. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Acked-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- arch/arm/mach-shmobile/include/mach/r8a7778.h | 1 + arch/arm/mach-shmobile/setup-r8a7778.c | 44 +++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h index a755dca..e0c6205 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7778.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h @@ -24,5 +24,6 @@ extern void r8a7778_init_delay(void); extern void r8a7778_init_irq(void); extern void r8a7778_init_irq_dt(void); extern void r8a7778_clock_init(void); +extern void r8a7778_init_irq_extpin(int irlm); #endif /* __ASM_R8A7778_H__ */ diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index 57d6b0e..2882305 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c @@ -23,6 +23,7 @@ #include <linux/irqchip/arm-gic.h> #include <linux/of.h> #include <linux/of_platform.h> +#include <linux/platform_data/irq-renesas-intc-irqpin.h> #include <linux/platform_device.h> #include <linux/irqchip.h> #include <linux/serial_sci.h> @@ -110,6 +111,49 @@ void __init r8a7778_add_standard_devices(void) r8a7778_register_tmu(1); } +static struct renesas_intc_irqpin_config irqpin_platform_data = { + .irq_base = irq_pin(0), /* IRQ0 -> IRQ3 */ + .sense_bitfield_width = 2, +}; + +static struct resource irqpin_resources[] = { + DEFINE_RES_MEM(0xfe78001c, 4), /* ICR1 */ + DEFINE_RES_MEM(0xfe780010, 4), /* INTPRI */ + DEFINE_RES_MEM(0xfe780024, 4), /* INTREQ */ + DEFINE_RES_MEM(0xfe780044, 4), /* INTMSK0 */ + DEFINE_RES_MEM(0xfe780064, 4), /* INTMSKCLR0 */ + DEFINE_RES_IRQ(gic_iid(0x3b)), /* IRQ0 */ + DEFINE_RES_IRQ(gic_iid(0x3c)), /* IRQ1 */ + DEFINE_RES_IRQ(gic_iid(0x3d)), /* IRQ2 */ + DEFINE_RES_IRQ(gic_iid(0x3e)), /* IRQ3 */ +}; + +void __init r8a7778_init_irq_extpin(int irlm) +{ + void __iomem *icr0 = ioremap_nocache(0xfe780000, PAGE_SIZE); + unsigned long tmp; + + if (!icr0) { + pr_warn("r8a7778: unable to setup external irq pin mode\n"); + return; + } + + tmp = ioread32(icr0); + if (irlm) + tmp |= 1 << 23; /* IRQ0 -> IRQ3 as individual pins */ + else + tmp &= ~(1 << 23); /* IRL mode - not supported */ + tmp |= (1 << 21); /* LVLMODE = 1 */ + iowrite32(tmp, icr0); + iounmap(icr0); + + if (irlm) + platform_device_register_resndata( + &platform_bus, "renesas_intc_irqpin", -1, + irqpin_resources, ARRAY_SIZE(irqpin_resources), + &irqpin_platform_data, sizeof(irqpin_platform_data)); +} + #define INT2SMSKCR0 0x82288 /* 0xfe782288 */ #define INT2SMSKCR1 0x8228c /* 0xfe78228c */ -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] ARM: shmobile: r8a7778: add renesas_intc_irqpin support on DT 2013-04-05 6:12 ` [PATCH 2/3] ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin() Simon Horman @ 2013-10-02 6:13 ` Kuninori Morimoto 2013-11-01 1:22 ` [PATCH 2/3] ARM: shmobile: r8a7778: add HSPI clock support for DT Kuninori Morimoto ` (2 subsequent siblings) 3 siblings, 0 replies; 10+ messages in thread From: Kuninori Morimoto @ 2013-10-02 6:13 UTC (permalink / raw) To: linux-sh Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> --- arch/arm/boot/dts/r8a7778.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi index 3577aba..a6308a3 100644 --- a/arch/arm/boot/dts/r8a7778.dtsi +++ b/arch/arm/boot/dts/r8a7778.dtsi @@ -33,6 +33,25 @@ <0xfe430000 0x100>; }; + /* irqpin: IRQ0 - IRQ3 */ + irqpin: irqpin@fe78001c { + compatible = "renesas,intc-irqpin"; + #interrupt-cells = <2>; + interrupt-controller; + status = "disabled"; /* default off */ + reg = <0xfe78001c 4>, + <0xfe780010 4>, + <0xfe780024 4>, + <0xfe780044 4>, + <0xfe780064 4>; + interrupt-parent = <&gic>; + interrupts = <0 27 0x4 + 0 28 0x4 + 0 29 0x4 + 0 30 0x4>; + sense-bitfield-width = <2>; + }; + gpio0: gpio@ffc40000 { compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; reg = <0xffc40000 0x2c>; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] ARM: shmobile: r8a7778: add HSPI clock support for DT 2013-04-05 6:12 ` [PATCH 2/3] ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin() Simon Horman 2013-10-02 6:13 ` [PATCH 2/3] ARM: shmobile: r8a7778: add renesas_intc_irqpin support on DT Kuninori Morimoto @ 2013-11-01 1:22 ` Kuninori Morimoto 2013-11-08 7:56 ` Simon Horman 2013-11-18 2:51 ` [PATCH 2/3] ARM: shmobile: r8a7778: add HPBIFx DMAEngine support Kuninori Morimoto 3 siblings, 0 replies; 10+ messages in thread From: Kuninori Morimoto @ 2013-11-01 1:22 UTC (permalink / raw) To: linux-sh Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> --- arch/arm/mach-shmobile/clock-r8a7778.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-shmobile/clock-r8a7778.c b/arch/arm/mach-shmobile/clock-r8a7778.c index 3c25282..4b601bf 100644 --- a/arch/arm/mach-shmobile/clock-r8a7778.c +++ b/arch/arm/mach-shmobile/clock-r8a7778.c @@ -203,8 +203,11 @@ static struct clk_lookup lookups[] = { CLKDEV_DEV_ID("sh_tmu.0", &mstp_clks[MSTP016]), /* TMU00 */ CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP015]), /* TMU01 */ CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */ + CLKDEV_DEV_ID("fffc7000.spi", &mstp_clks[MSTP007]), /* HSPI0 */ CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */ + CLKDEV_DEV_ID("fffc8000.spi", &mstp_clks[MSTP007]), /* HSPI1 */ CLKDEV_DEV_ID("sh-hspi.2", &mstp_clks[MSTP007]), /* HSPI2 */ + CLKDEV_DEV_ID("fffc6000.spi", &mstp_clks[MSTP007]), /* HSPI2 */ CLKDEV_DEV_ID("rcar_sound", &mstp_clks[MSTP008]), /* SRU */ CLKDEV_ICK_ID("ssi.0", "rcar_sound", &mstp_clks[MSTP012]), -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] ARM: shmobile: r8a7778: add HSPI clock support for DT 2013-04-05 6:12 ` [PATCH 2/3] ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin() Simon Horman 2013-10-02 6:13 ` [PATCH 2/3] ARM: shmobile: r8a7778: add renesas_intc_irqpin support on DT Kuninori Morimoto 2013-11-01 1:22 ` [PATCH 2/3] ARM: shmobile: r8a7778: add HSPI clock support for DT Kuninori Morimoto @ 2013-11-08 7:56 ` Simon Horman 2013-11-18 2:51 ` [PATCH 2/3] ARM: shmobile: r8a7778: add HPBIFx DMAEngine support Kuninori Morimoto 3 siblings, 0 replies; 10+ messages in thread From: Simon Horman @ 2013-11-08 7:56 UTC (permalink / raw) To: linux-sh On Thu, Oct 31, 2013 at 06:22:39PM -0700, Kuninori Morimoto wrote: > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Thanks, I have queued this up. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/3] ARM: shmobile: r8a7778: add HPBIFx DMAEngine support 2013-04-05 6:12 ` [PATCH 2/3] ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin() Simon Horman ` (2 preceding siblings ...) 2013-11-08 7:56 ` Simon Horman @ 2013-11-18 2:51 ` Kuninori Morimoto 3 siblings, 0 replies; 10+ messages in thread From: Kuninori Morimoto @ 2013-11-18 2:51 UTC (permalink / raw) To: linux-sh Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> --- arch/arm/mach-shmobile/include/mach/r8a7778.h | 18 +++++++++ arch/arm/mach-shmobile/setup-r8a7778.c | 51 +++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h index 441886c..b497f93 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7778.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h @@ -27,6 +27,24 @@ enum { HPBDMA_SLAVE_DUMMY, HPBDMA_SLAVE_SDHI0_TX, HPBDMA_SLAVE_SDHI0_RX, + HPBDMA_SLAVE_HPBIF0_TX, + HPBDMA_SLAVE_HPBIF0_RX, + HPBDMA_SLAVE_HPBIF1_TX, + HPBDMA_SLAVE_HPBIF1_RX, + HPBDMA_SLAVE_HPBIF2_TX, + HPBDMA_SLAVE_HPBIF2_RX, + HPBDMA_SLAVE_HPBIF3_TX, + HPBDMA_SLAVE_HPBIF3_RX, + HPBDMA_SLAVE_HPBIF4_TX, + HPBDMA_SLAVE_HPBIF4_RX, + HPBDMA_SLAVE_HPBIF5_TX, + HPBDMA_SLAVE_HPBIF5_RX, + HPBDMA_SLAVE_HPBIF6_TX, + HPBDMA_SLAVE_HPBIF6_RX, + HPBDMA_SLAVE_HPBIF7_TX, + HPBDMA_SLAVE_HPBIF7_RX, + HPBDMA_SLAVE_HPBIF8_TX, + HPBDMA_SLAVE_HPBIF8_RX, }; extern void r8a7778_add_standard_devices(void); diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index 03fcc59..81701cf 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c @@ -319,6 +319,29 @@ void __init r8a7778_add_dt_devices(void) #define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */ #define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */ +#define HPBDMA_HPBIF(_id) \ +{ \ + .id = HPBDMA_SLAVE_HPBIF## _id ##_TX, \ + .addr = 0xffda0000 + (_id * 0x1000), \ + .dcr = HPB_DMAE_DCR_CT | \ + HPB_DMAE_DCR_DIP | \ + HPB_DMAE_DCR_SPDS_32BIT | \ + HPB_DMAE_DCR_DMDL | \ + HPB_DMAE_DCR_DPDS_32BIT, \ + .port = 0x1111, \ + .dma_ch = (28 + _id), \ +}, { \ + .id = HPBDMA_SLAVE_HPBIF## _id ##_RX, \ + .addr = 0xffda0000 + (_id * 0x1000), \ + .dcr = HPB_DMAE_DCR_CT | \ + HPB_DMAE_DCR_DIP | \ + HPB_DMAE_DCR_SMDL | \ + HPB_DMAE_DCR_SPDS_32BIT | \ + HPB_DMAE_DCR_DPDS_32BIT, \ + .port = 0x1111, \ + .dma_ch = (28 + _id), \ +} + static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { { .id = HPBDMA_SLAVE_SDHI0_TX, @@ -349,11 +372,39 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE, .dma_ch = 22, }, + + HPBDMA_HPBIF(0), + HPBDMA_HPBIF(1), + HPBDMA_HPBIF(2), + HPBDMA_HPBIF(3), + HPBDMA_HPBIF(4), + HPBDMA_HPBIF(5), + HPBDMA_HPBIF(6), + HPBDMA_HPBIF(7), + HPBDMA_HPBIF(8), }; static const struct hpb_dmae_channel hpb_dmae_channels[] = { HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_TX), /* ch. 28 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_RX), /* ch. 28 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_TX), /* ch. 29 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_RX), /* ch. 29 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_TX), /* ch. 30 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_RX), /* ch. 30 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_TX), /* ch. 31 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_RX), /* ch. 31 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_TX), /* ch. 32 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_RX), /* ch. 32 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_TX), /* ch. 33 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_RX), /* ch. 33 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_TX), /* ch. 34 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_RX), /* ch. 34 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_TX), /* ch. 35 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_RX), /* ch. 35 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_TX), /* ch. 36 */ + HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_RX), /* ch. 36 */ }; static struct hpb_dmae_pdata dma_platform_data __initdata = { -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] ARM: shmobile: R8A7778: add Ether support 2013-04-05 6:12 [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 Simon Horman 2013-04-05 6:12 ` [PATCH 1/3] ARM: shmobile: r8a7778: remove pointless PLATFORM_INFO() Simon Horman 2013-04-05 6:12 ` [PATCH 2/3] ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin() Simon Horman @ 2013-04-05 6:12 ` Simon Horman 2013-04-18 6:41 ` [PATCH 3/3] ARM: shmobile: r8a7778: add GPIO support Kuninori Morimoto 2013-04-09 12:53 ` [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 Arnd Bergmann 3 siblings, 1 reply; 10+ messages in thread From: Simon Horman @ 2013-04-05 6:12 UTC (permalink / raw) To: linux-arm-kernel From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Add Ether clock and platform device for R8A7778 SoC; add a function to register this device with board-specific platform data. Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- arch/arm/mach-shmobile/clock-r8a7778.c | 3 +++ arch/arm/mach-shmobile/include/mach/r8a7778.h | 3 +++ arch/arm/mach-shmobile/setup-r8a7778.c | 15 +++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/arch/arm/mach-shmobile/clock-r8a7778.c b/arch/arm/mach-shmobile/clock-r8a7778.c index f1277f4..cd68552 100644 --- a/arch/arm/mach-shmobile/clock-r8a7778.c +++ b/arch/arm/mach-shmobile/clock-r8a7778.c @@ -58,11 +58,13 @@ static struct clk *main_clks[] = { }; enum { + MSTP114, MSTP026, MSTP025, MSTP024, MSTP023, MSTP022, MSTP021, MSTP016, MSTP015, MSTP_NR }; static struct clk mstp_clks[MSTP_NR] = { + [MSTP114] = SH_CLK_MSTP32(&clkp, MSTPCR1, 14, 0), /* Ether */ [MSTP026] = SH_CLK_MSTP32(&clkp, MSTPCR0, 26, 0), /* SCIF0 */ [MSTP025] = SH_CLK_MSTP32(&clkp, MSTPCR0, 25, 0), /* SCIF1 */ [MSTP024] = SH_CLK_MSTP32(&clkp, MSTPCR0, 24, 0), /* SCIF2 */ @@ -75,6 +77,7 @@ static struct clk mstp_clks[MSTP_NR] = { static struct clk_lookup lookups[] = { /* MSTP32 clocks */ + CLKDEV_DEV_ID("sh-eth", &mstp_clks[MSTP114]), /* Ether */ CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP026]), /* SCIF0 */ CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP025]), /* SCIF1 */ CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP024]), /* SCIF2 */ diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h index e0c6205..951149e 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7778.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h @@ -18,8 +18,11 @@ #ifndef __ASM_R8A7778_H__ #define __ASM_R8A7778_H__ +#include <linux/sh_eth.h> + extern void r8a7778_add_standard_devices(void); extern void r8a7778_add_standard_devices_dt(void); +extern void r8a7778_add_ether_device(struct sh_eth_plat_data *pdata); extern void r8a7778_init_delay(void); extern void r8a7778_init_irq(void); extern void r8a7778_init_irq_dt(void); diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index 2882305..30b4a33 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c @@ -3,6 +3,7 @@ * * Copyright (C) 2013 Renesas Solutions Corp. * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> + * Copyright (C) 2013 Cogent Embedded, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -79,6 +80,12 @@ static struct sh_timer_config sh_tmu1_platform_data = { .clocksource_rating = 200, }; +/* Ether */ +static struct resource ether_resources[] = { + DEFINE_RES_MEM(0xfde00000, 0x400), + DEFINE_RES_IRQ(gic_iid(0x89)), +}; + #define r8a7778_register_tmu(idx) \ platform_device_register_resndata( \ &platform_bus, "sh_tmu", idx, \ @@ -111,6 +118,14 @@ void __init r8a7778_add_standard_devices(void) r8a7778_register_tmu(1); } +void __init r8a7778_add_ether_device(struct sh_eth_plat_data *pdata) +{ + platform_device_register_resndata(&platform_bus, "sh_eth", -1, + ether_resources, + ARRAY_SIZE(ether_resources), + pdata, sizeof(*pdata)); +} + static struct renesas_intc_irqpin_config irqpin_platform_data = { .irq_base = irq_pin(0), /* IRQ0 -> IRQ3 */ .sense_bitfield_width = 2, -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] ARM: shmobile: r8a7778: add GPIO support 2013-04-05 6:12 ` [PATCH 3/3] ARM: shmobile: R8A7778: add Ether support Simon Horman @ 2013-04-18 6:41 ` Kuninori Morimoto 0 siblings, 0 replies; 10+ messages in thread From: Kuninori Morimoto @ 2013-04-18 6:41 UTC (permalink / raw) To: linux-sh This patch was tested on Bock-W board Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> --- arch/arm/mach-shmobile/setup-r8a7778.c | 36 +++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index d82954b..1122618 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c @@ -24,6 +24,7 @@ #include <linux/irqchip/arm-gic.h> #include <linux/of.h> #include <linux/of_platform.h> +#include <linux/platform_data/gpio-rcar.h> #include <linux/platform_data/irq-renesas-intc-irqpin.h> #include <linux/platform_device.h> #include <linux/irqchip.h> @@ -102,17 +103,50 @@ void __init r8a7778_add_ether_device(struct sh_eth_plat_data *pdata) pdata, sizeof(*pdata)); } -/* PFC */ +/* PFC/GPIO */ static struct resource pfc_resources[] = { DEFINE_RES_MEM(0xfffc0000, 0x118), }; +#define R8A7778_GPIO(idx) \ +static struct resource r8a7778_gpio##idx##_resources[] = { \ + DEFINE_RES_MEM(0xffc40000 + 0x1000 * (idx), 0x30), \ + DEFINE_RES_IRQ(gic_iid(0x87)), \ +}; \ + \ +static struct gpio_rcar_config r8a7778_gpio##idx##_platform_data = { \ + .gpio_base = 32 * (idx), \ + .irq_base = GPIO_IRQ_BASE(idx), \ + .number_of_pins = 32, \ + .pctl_name = "pfc-r8a7778", \ +} + +R8A7778_GPIO(0); +R8A7778_GPIO(1); +R8A7778_GPIO(2); +R8A7778_GPIO(3); +R8A7778_GPIO(4); + +#define r8a7778_register_gpio(idx) \ + platform_device_register_resndata( \ + &platform_bus, "gpio_rcar", idx, \ + r8a7778_gpio##idx##_resources, \ + ARRAY_SIZE(r8a7778_gpio##idx##_resources), \ + &r8a7778_gpio##idx##_platform_data, \ + sizeof(r8a7778_gpio##idx##_platform_data)) + void __init r8a7778_pinmux_init(void) { platform_device_register_simple( "pfc-r8a7778", -1, pfc_resources, ARRAY_SIZE(pfc_resources)); + + r8a7778_register_gpio(0); + r8a7778_register_gpio(1); + r8a7778_register_gpio(2); + r8a7778_register_gpio(3); + r8a7778_register_gpio(4); } void __init r8a7778_add_standard_devices(void) -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 2013-04-05 6:12 [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 Simon Horman ` (2 preceding siblings ...) 2013-04-05 6:12 ` [PATCH 3/3] ARM: shmobile: R8A7778: add Ether support Simon Horman @ 2013-04-09 12:53 ` Arnd Bergmann 3 siblings, 0 replies; 10+ messages in thread From: Arnd Bergmann @ 2013-04-09 12:53 UTC (permalink / raw) To: linux-arm-kernel On Friday 05 April 2013, Simon Horman wrote: > Hi Olof, Hi Arnd, > > The following changes since commit 8585deb18580d04209a2986430aa0959ef38fce2: > > ARM: shmobile: r8a7790 SoC 64-bit DT support (2013-04-02 11:02:21 +0900) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas tags/renesas-soc-r8a7778-for-v3.10 > > for you to fetch changes up to 524219146a89aee5366326c225ccd71231419d89: > > ARM: shmobile: R8A7778: add Ether support (2013-04-05 10:57:05 +0900) Pulled into next/soc2, thanks! Arnd ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-11-18 2:51 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-05 6:12 [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 Simon Horman 2013-04-05 6:12 ` [PATCH 1/3] ARM: shmobile: r8a7778: remove pointless PLATFORM_INFO() Simon Horman 2013-04-05 6:12 ` [PATCH 2/3] ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin() Simon Horman 2013-10-02 6:13 ` [PATCH 2/3] ARM: shmobile: r8a7778: add renesas_intc_irqpin support on DT Kuninori Morimoto 2013-11-01 1:22 ` [PATCH 2/3] ARM: shmobile: r8a7778: add HSPI clock support for DT Kuninori Morimoto 2013-11-08 7:56 ` Simon Horman 2013-11-18 2:51 ` [PATCH 2/3] ARM: shmobile: r8a7778: add HPBIFx DMAEngine support Kuninori Morimoto 2013-04-05 6:12 ` [PATCH 3/3] ARM: shmobile: R8A7778: add Ether support Simon Horman 2013-04-18 6:41 ` [PATCH 3/3] ARM: shmobile: r8a7778: add GPIO support Kuninori Morimoto 2013-04-09 12:53 ` [GIT PULL] Renesas ARM r8a7778 SoC update for v3.10 Arnd Bergmann
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).