sh-pfc: r8a7790: Add ETH pin groups and functions

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
This commit is contained in:
Laurent Pinchart 2013-04-08 11:36:14 +02:00 committed by Simon Horman
parent bf9f0674e3
commit 1627769b5f
1 changed files with 58 additions and 0 deletions

View File

@ -20,7 +20,10 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/platform_data/gpio-rcar.h>
#include <mach/r8a7790.h> #include <mach/r8a7790.h>
#include "core.h" #include "core.h"
@ -1820,6 +1823,57 @@ static struct sh_pfc_pin pinmux_pins[] = {
PINMUX_GPIO_GP_ALL(), PINMUX_GPIO_GP_ALL(),
}; };
/* - ETH -------------------------------------------------------------------- */
static const unsigned int eth_link_pins[] = {
/* LINK */
RCAR_GP_PIN(2, 22),
};
static const unsigned int eth_link_mux[] = {
ETH_LINK_MARK,
};
static const unsigned int eth_magic_pins[] = {
/* MAGIC */
RCAR_GP_PIN(2, 27),
};
static const unsigned int eth_magic_mux[] = {
ETH_MAGIC_MARK,
};
static const unsigned int eth_mdio_pins[] = {
/* MDC, MDIO */
RCAR_GP_PIN(2, 29), RCAR_GP_PIN(2, 24),
};
static const unsigned int eth_mdio_mux[] = {
ETH_MDC_MARK, ETH_MDIO_MARK,
};
static const unsigned int eth_rmii_pins[] = {
/* RXD[0:1], RX_ER, CRS_DV, TXD[0:1], TX_EN, REF_CLK */
RCAR_GP_PIN(2, 20), RCAR_GP_PIN(2, 21), RCAR_GP_PIN(2, 19),
RCAR_GP_PIN(2, 18), RCAR_GP_PIN(2, 28), RCAR_GP_PIN(2, 25),
RCAR_GP_PIN(2, 26), RCAR_GP_PIN(2, 23),
};
static const unsigned int eth_rmii_mux[] = {
ETH_RXD0_MARK, ETH_RXD1_MARK, ETH_RX_ER_MARK, ETH_CRS_DV_MARK,
ETH_TXD0_MARK, ETH_TXD1_MARK, ETH_TX_EN_MARK, ETH_REF_CLK_MARK,
};
static const struct sh_pfc_pin_group pinmux_groups[] = {
SH_PFC_PIN_GROUP(eth_link),
SH_PFC_PIN_GROUP(eth_magic),
SH_PFC_PIN_GROUP(eth_mdio),
SH_PFC_PIN_GROUP(eth_rmii),
};
static const char * const eth_groups[] = {
"eth_link",
"eth_magic",
"eth_mdio",
"eth_rmii",
};
static const struct sh_pfc_function pinmux_functions[] = {
SH_PFC_FUNCTION(eth),
};
#define PINMUX_FN_BASE ARRAY_SIZE(pinmux_pins) #define PINMUX_FN_BASE ARRAY_SIZE(pinmux_pins)
static const struct pinmux_func pinmux_func_gpios[] = { static const struct pinmux_func pinmux_func_gpios[] = {
@ -3226,6 +3280,10 @@ const struct sh_pfc_soc_info r8a7790_pinmux_info = {
.pins = pinmux_pins, .pins = pinmux_pins,
.nr_pins = ARRAY_SIZE(pinmux_pins), .nr_pins = ARRAY_SIZE(pinmux_pins),
.groups = pinmux_groups,
.nr_groups = ARRAY_SIZE(pinmux_groups),
.functions = pinmux_functions,
.nr_functions = ARRAY_SIZE(pinmux_functions),
.func_gpios = pinmux_func_gpios, .func_gpios = pinmux_func_gpios,
.nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios), .nr_func_gpios = ARRAY_SIZE(pinmux_func_gpios),