Skip to content

Commit 3f35221

Browse files
Fabrizio Castrogeertu
authored andcommitted
pinctrl: sh-pfc: r8a7745: Add CAN[01] support
This patch adds PFC CAN0 and CAN1 pin groups and functions, enabling CAN bus on the RZ/G1E. Signed-off-by: Fabrizio Castro <[email protected]> Reviewed-by: Biju Das <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
1 parent 4fbd8d1 commit 3f35221

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed

drivers/pinctrl/sh-pfc/pfc-r8a7794.c

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1608,6 +1608,116 @@ static const unsigned int avb_gmii_mux[] = {
16081608
AVB_TX_EN_MARK, AVB_TX_ER_MARK, AVB_TX_CLK_MARK,
16091609
AVB_COL_MARK,
16101610
};
1611+
1612+
/* - CAN -------------------------------------------------------------------- */
1613+
static const unsigned int can0_data_pins[] = {
1614+
/* TX, RX */
1615+
RCAR_GP_PIN(6, 15), RCAR_GP_PIN(6, 14),
1616+
};
1617+
1618+
static const unsigned int can0_data_mux[] = {
1619+
CAN0_TX_MARK, CAN0_RX_MARK,
1620+
};
1621+
1622+
static const unsigned int can0_data_b_pins[] = {
1623+
/* TX, RX */
1624+
RCAR_GP_PIN(3, 16), RCAR_GP_PIN(3, 15),
1625+
};
1626+
1627+
static const unsigned int can0_data_b_mux[] = {
1628+
CAN0_TX_B_MARK, CAN0_RX_B_MARK,
1629+
};
1630+
1631+
static const unsigned int can0_data_c_pins[] = {
1632+
/* TX, RX */
1633+
RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 16),
1634+
};
1635+
1636+
static const unsigned int can0_data_c_mux[] = {
1637+
CAN0_TX_C_MARK, CAN0_RX_C_MARK,
1638+
};
1639+
1640+
static const unsigned int can0_data_d_pins[] = {
1641+
/* TX, RX */
1642+
RCAR_GP_PIN(5, 12), RCAR_GP_PIN(5, 11),
1643+
};
1644+
1645+
static const unsigned int can0_data_d_mux[] = {
1646+
CAN0_TX_D_MARK, CAN0_RX_D_MARK,
1647+
};
1648+
1649+
static const unsigned int can1_data_pins[] = {
1650+
/* TX, RX */
1651+
RCAR_GP_PIN(6, 25), RCAR_GP_PIN(6, 24),
1652+
};
1653+
1654+
static const unsigned int can1_data_mux[] = {
1655+
CAN1_TX_MARK, CAN1_RX_MARK,
1656+
};
1657+
1658+
static const unsigned int can1_data_b_pins[] = {
1659+
/* TX, RX */
1660+
RCAR_GP_PIN(1, 2), RCAR_GP_PIN(1, 1),
1661+
};
1662+
1663+
static const unsigned int can1_data_b_mux[] = {
1664+
CAN1_TX_B_MARK, CAN1_RX_B_MARK,
1665+
};
1666+
1667+
static const unsigned int can1_data_c_pins[] = {
1668+
/* TX, RX */
1669+
RCAR_GP_PIN(5, 6), RCAR_GP_PIN(5, 5),
1670+
};
1671+
1672+
static const unsigned int can1_data_c_mux[] = {
1673+
CAN1_TX_C_MARK, CAN1_RX_C_MARK,
1674+
};
1675+
1676+
static const unsigned int can1_data_d_pins[] = {
1677+
/* TX, RX */
1678+
RCAR_GP_PIN(3, 31), RCAR_GP_PIN(3, 30),
1679+
};
1680+
1681+
static const unsigned int can1_data_d_mux[] = {
1682+
CAN1_TX_D_MARK, CAN1_RX_D_MARK,
1683+
};
1684+
1685+
static const unsigned int can_clk_pins[] = {
1686+
/* CLK */
1687+
RCAR_GP_PIN(3, 31),
1688+
};
1689+
1690+
static const unsigned int can_clk_mux[] = {
1691+
CAN_CLK_MARK,
1692+
};
1693+
1694+
static const unsigned int can_clk_b_pins[] = {
1695+
/* CLK */
1696+
RCAR_GP_PIN(1, 23),
1697+
};
1698+
1699+
static const unsigned int can_clk_b_mux[] = {
1700+
CAN_CLK_B_MARK,
1701+
};
1702+
1703+
static const unsigned int can_clk_c_pins[] = {
1704+
/* CLK */
1705+
RCAR_GP_PIN(1, 0),
1706+
};
1707+
1708+
static const unsigned int can_clk_c_mux[] = {
1709+
CAN_CLK_C_MARK,
1710+
};
1711+
1712+
static const unsigned int can_clk_d_pins[] = {
1713+
/* CLK */
1714+
RCAR_GP_PIN(5, 0),
1715+
};
1716+
1717+
static const unsigned int can_clk_d_mux[] = {
1718+
CAN_CLK_D_MARK,
1719+
};
1720+
16111721
/* - DU --------------------------------------------------------------------- */
16121722
static const unsigned int du0_rgb666_pins[] = {
16131723
/* R[7:2], G[7:2], B[7:2] */
@@ -3459,6 +3569,18 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
34593569
SH_PFC_PIN_GROUP(avb_mdio),
34603570
SH_PFC_PIN_GROUP(avb_mii),
34613571
SH_PFC_PIN_GROUP(avb_gmii),
3572+
SH_PFC_PIN_GROUP(can0_data),
3573+
SH_PFC_PIN_GROUP(can0_data_b),
3574+
SH_PFC_PIN_GROUP(can0_data_c),
3575+
SH_PFC_PIN_GROUP(can0_data_d),
3576+
SH_PFC_PIN_GROUP(can1_data),
3577+
SH_PFC_PIN_GROUP(can1_data_b),
3578+
SH_PFC_PIN_GROUP(can1_data_c),
3579+
SH_PFC_PIN_GROUP(can1_data_d),
3580+
SH_PFC_PIN_GROUP(can_clk),
3581+
SH_PFC_PIN_GROUP(can_clk_b),
3582+
SH_PFC_PIN_GROUP(can_clk_c),
3583+
SH_PFC_PIN_GROUP(can_clk_d),
34623584
SH_PFC_PIN_GROUP(du0_rgb666),
34633585
SH_PFC_PIN_GROUP(du0_rgb888),
34643586
SH_PFC_PIN_GROUP(du0_clk0_out),
@@ -3731,6 +3853,28 @@ static const char * const avb_groups[] = {
37313853
"avb_gmii",
37323854
};
37333855

3856+
static const char * const can0_groups[] = {
3857+
"can0_data",
3858+
"can0_data_b",
3859+
"can0_data_c",
3860+
"can0_data_d",
3861+
"can_clk",
3862+
"can_clk_b",
3863+
"can_clk_c",
3864+
"can_clk_d",
3865+
};
3866+
3867+
static const char * const can1_groups[] = {
3868+
"can1_data",
3869+
"can1_data_b",
3870+
"can1_data_c",
3871+
"can1_data_d",
3872+
"can_clk",
3873+
"can_clk_b",
3874+
"can_clk_c",
3875+
"can_clk_d",
3876+
};
3877+
37343878
static const char * const du0_groups[] = {
37353879
"du0_rgb666",
37363880
"du0_rgb888",
@@ -4102,6 +4246,8 @@ static const char * const vin1_groups[] = {
41024246
static const struct sh_pfc_function pinmux_functions[] = {
41034247
SH_PFC_FUNCTION(audio_clk),
41044248
SH_PFC_FUNCTION(avb),
4249+
SH_PFC_FUNCTION(can0),
4250+
SH_PFC_FUNCTION(can1),
41054251
SH_PFC_FUNCTION(du0),
41064252
SH_PFC_FUNCTION(du1),
41074253
SH_PFC_FUNCTION(eth),

0 commit comments

Comments
 (0)