Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1627769b authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Simon Horman
Browse files

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

parent bf9f0674
Loading
Loading
Loading
Loading
+58 −0
Original line number Diff line number Diff line
@@ -20,7 +20,10 @@
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

#include <linux/kernel.h>
#include <linux/platform_data/gpio-rcar.h>

#include <mach/r8a7790.h>

#include "core.h"
@@ -1820,6 +1823,57 @@ static struct sh_pfc_pin pinmux_pins[] = {
	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)

static const struct pinmux_func pinmux_func_gpios[] = {
@@ -3226,6 +3280,10 @@ const struct sh_pfc_soc_info r8a7790_pinmux_info = {

	.pins = 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,
	.nr_func_gpios	= ARRAY_SIZE(pinmux_func_gpios),