[PATCH v2 0/3]
Subsystems (5)
v2 cover [PATCH v2 0/3]
Hi,
this short series enables the on-board ethernet
of the r8a7790 SoC for on lager board.
It is based on the renesas-next-20130513 tag of my renesas tree.
Dependencies noted in individual patches.
Simon Horman (3):
ARM: shmobile: r8a7790: add Ether support
ARM: shmobile: lager: enable Ether
ARM: shmobile: lager: enable nfsroot in DTS
arch/arm/boot/dts/r8a7790-lager.dts | 2 +- arch/arm/mach-shmobile/board-lager.c | 25 +++++++++++++++++++++++++ arch/arm/mach-shmobile/clock-r8a7790.c | 4 ++++ arch/arm/mach-shmobile/include/mach/r8a7790.h | 3 +++ arch/arm/mach-shmobile/setup-r8a7790.c | 15 +++++++++++++++ 5 files changed, 48 insertions(+), 1 deletion(-)
Signature · 1 line
1.8.2.1
PATCH v2 1/3 ARM: shmobile: r8a7790: add Ether support
Add Ether clock and platform device for R8A7779 SoC; add a function to register this device with board-specific platform data.
Based on a similar change for the r8a7779 by Sergei Shtylyov.
---
This patch has a run-time dependency on "sh_eth: add support for r8a7790 SoC".
v2
* Do not add MSTP812, EtherAVB. It is not used.
* As suggested by Sergei Shtylyov <[email protected]>
- Move Ethernet element of MSTP enum to a separate line
- Move declaration of r8a7790_add_ether_device() to immediately after that of r8a7790_add_standard_devices()
- Add __initdata annotation to ether_resource.
--- arch/arm/mach-shmobile/clock-r8a7790.c | 4 ++++ arch/arm/mach-shmobile/include/mach/r8a7790.h | 3 +++ arch/arm/mach-shmobile/setup-r8a7790.c | 15 +++++++++++++++ 3 files changed, 22 insertions(+)
arch/arm/mach-shmobile/clock-r8a7790.c +4 -0
@@ -50,6 +50,7 @@#define SMSTPCR2 0xe6150138#define SMSTPCR3 0xe615013c#define SMSTPCR7 0xe615014c +#define SMSTPCR8 0xe6150990#define MODEMR 0xE6160060#define SDCKCR 0xE6150074
@@ -180,6 +181,7 @@ static struct clk div6_clks[DIV6_NR] = {/* MSTP */ enum { +MSTP813 ,MSTP721 ,MSTP720 ,MSTP304 ,MSTP216 ,MSTP207 ,MSTP206 ,MSTP204 ,MSTP203 ,MSTP202 ,
@@ -187,6 +189,7 @@ enum { };static struct clk mstp_clks[MSTP_NR ] = { + [MSTP813 ] =SH_CLK_MSTP32 (&p_clk,SMSTPCR8 ,13 ,0 ),/* Ether */ [MSTP721 ] =SH_CLK_MSTP32 (&p_clk,SMSTPCR7 ,21 ,0 ),/* SCIF0 */ [MSTP720 ] =SH_CLK_MSTP32 (&p_clk,SMSTPCR7 ,20 ,0 ),/* SCIF1 */ [MSTP304 ] =SH_CLK_MSTP32 (&cp_clk,SMSTPCR3 ,4 ,0 ),/* TPU0 */
@@ -249,6 +252,7 @@ static struct clk_lookup lookups[] = {CLKDEV_DEV_ID ("sh-sci.5" , &mstp_clks[MSTP202 ]),CLKDEV_DEV_ID ("sh-sci.6" , &mstp_clks[MSTP721 ]),CLKDEV_DEV_ID ("sh-sci.7" , &mstp_clks[MSTP720 ]), + CLKDEV_DEV_ID("sh-eth", &mstp_clks[MSTP813]), };#define R8A7790_CLOCK_ROOT (e, m, p0, p1, p30, p31) \
arch/arm/mach-shmobile/include/mach/r8a7790.h +3 -0
@@ -1,7 +1,10 @@#ifndef __ASM_R8A7790_H__#define __ASM_R8A7790_H__ +#include <linux/sh_eth.h> +void r8a7790_add_standard_devices (void ); +void r8a7790_add_ether_device (struct sh_eth_plat_data *pdata);void r8a7790_clock_init (void );void r8a7790_pinmux_init (void );void r8a7790_timer_init (void );
arch/arm/mach-shmobile/setup-r8a7790.c +15 -0
@@ -30,6 +30,21 @@#include <mach/r8a7790.h> #include <asm/mach/arch.h> + +/* Ether */ +static __initdata struct resource ether_resources[] = { +DEFINE_RES_MEM (0xee700000 ,0x400 ), +DEFINE_RES_IRQ (gic_spi (162 )),/* IRQ0 */ +}; + +void __init r8a7790_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 const struct resource pfc_resources[] = {DEFINE_RES_MEM (0xe6060000 ,0x250 ), };
Signature · 1 line
1.8.2.1
PATCH v2 2/3 ARM: shmobile: lager: enable Ether
In reply to Simon Horman---
This patch has a build-time dependency on "sh_eth: add support for gpio reset". This patch has a run-time dependency on "sh_eth: add support for r8a7790 SoC".
v2
* As suggested by Laurent Pinchart
- Do not manipilate sh_eth reset GPIO directly, rather, do so through newly proposed support for this in the sh_eth driver.
* A suggested by Sergei Shtylyov
- Move DTS portion into a separate patch
--- arch/arm/mach-shmobile/board-lager.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
arch/arm/mach-shmobile/board-lager.c +25 -0
@@ -18,6 +18,7 @@* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include <linux/gpio.h> #include <linux/interrupt.h> #include <linux/irqchip.h> #include <linux/kernel.h>
@@ -52,6 +53,17 @@ static struct gpio_led_platform_data lager_leds_pdata = { .num_leds = ARRAY_SIZE(lager_leds), }; +/* Ether */ +static struct sh_eth_plat_data ether_platdata = { + .phy =0x1 , + .edmac_endian =EDMAC_LITTLE_ENDIAN , + .register_type =SH_ETH_REG_FAST_RCAR , + .phy_interface =PHY_INTERFACE_MODE_RMII , + .ether_link_active_low =1 , + .needs_gpio_reset =1 , + .reset_gpio =RCAR_GP_PIN (5 ,31 ), +}; +static const struct pinctrl_map lager_pinctrl_map[] = {/* SCIF0 (CN19: DEBUG SERIAL0) */ PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7790",
@@ -59,6 +71,17 @@ static const struct pinctrl_map lager_pinctrl_map[] = {/* SCIF1 (CN20: DEBUG SERIAL1) */ PIN_MAP_MUX_GROUP_DEFAULT ("sh-sci.7" ,"pfc-r8a7790" ,"scif1_data" ,"scif1" ), +/* Ether */ +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , +"eth_link" ,"eth" ), +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , +"eth_magic" ,"eth" ), +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , +"eth_mdio" ,"eth" ), +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , +"eth_rmii" ,"eth" ), +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , + "intc_irq0", "intc"), };static void __init lager_add_standard_devices (void )
@@ -73,6 +96,8 @@ static void __init lager_add_standard_devices(void)platform_device_register_data (&platform_bus,"leds-gpio" ,-1 , &lager_leds_pdata,sizeof (lager_leds_pdata)); + +r8a7790_add_ether_device (ðer_platdata); }static const char *lager_boards_compat_dt[]__initdata = {
Signature · 1 line
1.8.2.1
PATCH v2 2/3 ARM: shmobile: lager: enable Ether
Hi Simon,
Thank you for the patch.
Quoted 3 lines · On Tuesday 14 May 2013 11:39:30 Simon Horman wrote:
Cc Laurent Pinchart <[email protected]>Cc Sergei Shtylyov <[email protected]>Signed-off-by Simon Horman <[email protected]>
Is there any ongoing work on DT bindings for sh-eth ?
Quoted 74 lines
---
This patch has a build-time dependency on "
sh_eth: add support for gpio reset". This patch has a run-time dependency on "sh_eth: add support for r8a7790 SoC".v2
* As suggested by Laurent Pinchart
- Do not manipilatesh_ethreset GPIO directly, rather, do so through newly proposed support for this in thesh_ethdriver.
* A suggested by Sergei Shtylyov
- Move DTS portion into a separate patch--- arch/arm/mach-shmobile/board-lager.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)(quoted diff) +0
-0
b/arch/arm/mach-shmobile/board-lager.cindex 6a1ba38..c06f0da 100644arch/arm/mach-shmobile/board-lager.c +0
-0@@ -18,6 +18,7 @@* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
arch/arm/mach-shmobile/board-lager.c +25
-0+#include <linux/gpio.h> #include <linux/interrupt.h> #include <linux/irqchip.h> #include <linux/kernel.h> @@ -52,6 +53,17 @@ static struct gpio_led_platform_data lager_leds_pdata = { .num_leds = ARRAY_SIZE(lager_leds), }; +/* Ether */ +static struct sh_eth_plat_data ether_platdata = { + .phy =0x1 , + .edmac_endian =EDMAC_LITTLE_ENDIAN , + .register_type =SH_ETH_REG_FAST_RCAR , + .phy_interface =PHY_INTERFACE_MODE_RMII , + .ether_link_active_low =1 , + .needs_gpio_reset =1 , + .reset_gpio =RCAR_GP_PIN (5 ,31 ), +}; +static const struct pinctrl_map lager_pinctrl_map[] = {/* SCIF0 (CN19: DEBUG SERIAL0) */ PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7790",@@ -59,6 +71,17 @@ static const struct pinctrl_map lager_pinctrl_map[] = {/* SCIF1 (CN20: DEBUG SERIAL1) */ PIN_MAP_MUX_GROUP_DEFAULT ("sh-sci.7" ,"pfc-r8a7790" ,"scif1_data" ,"scif1" ), +/* Ether */ +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , +"eth_link" ,"eth" ), +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , +"eth_magic" ,"eth" ), +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , +"eth_mdio" ,"eth" ), +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , +"eth_rmii" ,"eth" ), +PIN_MAP_MUX_GROUP_DEFAULT ("sh-eth" ,"pfc-r8a7790" , + "intc_irq0", "intc"), };static void __init lager_add_standard_devices (void )@@ -73,6 +96,8 @@ static void __init lager_add_standard_devices(void)platform_device_register_data (&platform_bus,"leds-gpio" ,-1 , &lager_leds_pdata,sizeof (lager_leds_pdata)); + +r8a7790_add_ether_device (ðer_platdata); }static const char *lager_boards_compat_dt[]__initdata = {
Signature · 3 lines
Regards, Laurent Pinchart
PATCH v2 2/3 ARM: shmobile: lager: enable Ether
Hello.
Quoted 7 lines · Laurent Pinchart
Quoted 3 lines
Cc Laurent Pinchart <[email protected]>Cc Sergei Shtylyov <[email protected]>Signed-off-by Simon Horman <[email protected]>Acked-by Laurent Pinchart <[email protected]>Is there any ongoing work on DT bindings for sh-eth ?
At least there was -- by Nobuhiro Iwamatsu. I don't think converting
platform data to DT properties makes sense since sh_eth have some procedural platform data. I also don't think working on DT makes sense until the driver is cleaned up of all its #ifdef'ery (that work is partly being done by Nobuhiro and I'm planning to start the big #ifdef cleanup this week).
WBR, Sergei
PATCH v2 2/3 ARM: shmobile: lager: enable Ether
Hello.
Quoted 7 lines · Sergei Shtylyov
Quoted 6 lines
Quoted 4 lines
Cc Laurent Pinchart <[email protected]>Cc Sergei Shtylyov <[email protected]>Signed-off-by Simon Horman <[email protected]>Acked-by Laurent Pinchart <[email protected]>
Quoted 8 lines
Quoted 1 line
Is there any ongoing work on DT bindings for sh-eth ?
At least there was -- by Nobuhiro Iwamatsu. I don't think
converting platform data to DT properties makes sense sincesh_ethhave some procedural platform data. I also don't think working on DT makes sense until the driver is cleaned up of all its #ifdef'ery (that work is partly being done by Nobuhiro and I'm planning to start the big #ifdef cleanup this week).
Alas, not this week apparently as my management has shifted
priorities thrice this week. So maybe late next week now...
WBR, Sergei
PATCH v2 3/3 ARM: shmobile: lager: enable nfsroot in DTS
In reply to Simon HormanNow that Ether support has been added to the lager board it is possible to use nfsroot. This configuration is in line with that of other shmobile boards.
---
This patch has a run-time dependency on "ARM: shmobile: lager: enable Ether"
v2
* Split out as a new patch from "ARM: shmobile: lager: enable Ether"
--- arch/arm/boot/dts/r8a7790-lager.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/r8a7790-lager.dts +1 -1
@@ -16,7 +16,7 @@ compatible = "renesas,lager", "renesas,r8a7790"; chosen { - bootargs = "console=ttySC6,115200 ignore_loglevel"; + bootargs = "console=ttySC6,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw"; }; memory at 40000000 {
Signature · 1 line
1.8.2.1