]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
ARM: shmobile: BOCK-W: add Ether support
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Sat, 1 Jun 2013 22:40:55 +0000 (02:40 +0400)
committerSimon Horman <horms+renesas@verge.net.au>
Thu, 13 Jun 2013 05:42:42 +0000 (14:42 +0900)
Register Ether device from bockw_init(), passing the platform data to it, adding
only the RMII pin group to bockw_pinctrl_map[].  Although the LINK signal exists
on the board, it's connected to the link/activity LED  output of the PHY, thus
the link disappears and reappears after each packet. We'd be better off ignoring
such signal and getting the link state from the PHY indirectly.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
[horms+renesas@verge.net.au: manually applied]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/board-bockw.c

index 2b6103e55c34d6911e83c1e06cb5d78ff5809580..bfe8f6769cf9203a1348823ce887af92e94533c9 100644 (file)
@@ -63,7 +63,24 @@ static struct sh_mobile_sdhi_info sdhi0_info = {
        .tmio_flags     = TMIO_MMC_HAS_IDLE_WAIT,
 };
 
+static struct sh_eth_plat_data ether_platform_data __initdata = {
+       .phy            = 0x01,
+       .edmac_endian   = EDMAC_LITTLE_ENDIAN,
+       .register_type  = SH_ETH_REG_FAST_RCAR,
+       .phy_interface  = PHY_INTERFACE_MODE_RMII,
+       /*
+        * Although the LINK signal is available on the board, it's connected to
+        * the link/activity LED output of the PHY, thus the link disappears and
+        * reappears after each packet.  We'd be better off ignoring such signal
+        * and getting the link state from the PHY indirectly.
+        */
+       .no_ether_link  = 1,
+};
+
 static const struct pinctrl_map bockw_pinctrl_map[] = {
+       /* Ether */
+       PIN_MAP_MUX_GROUP_DEFAULT("sh-eth", "pfc-r8a7778",
+                                 "ether_rmii", "ether"),
        /* SCIF0 */
        PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778",
                                  "scif0_data_a", "scif0"),
@@ -85,6 +102,7 @@ static void __init bockw_init(void)
        r8a7778_clock_init();
        r8a7778_init_irq_extpin(1);
        r8a7778_add_standard_devices();
+       r8a7778_add_ether_device(&ether_platform_data);
 
        pinctrl_register_mappings(bockw_pinctrl_map,
                                  ARRAY_SIZE(bockw_pinctrl_map));