pinctrl: renesas: r8a779h0: Add CANFD pins, groups, functions
authorCong Dang <cong.dang.xn@renesas.com>
Fri, 26 Jan 2024 10:44:10 +0000 (11:44 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 20 Feb 2024 10:43:49 +0000 (11:43 +0100)
Add pins, groups and functions for the CAN-FD interfaces on the Renesas
R-Car V4M (R8A779H0) SoC.

Signed-off-by: Cong Dang <cong.dang.xn@renesas.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/fd380a402ec4c6238aa8cafc2e602d9e0f1c8cf2.1706264667.git.geert+renesas@glider.be
drivers/pinctrl/renesas/pfc-r8a779h0.c

index b5d1f6108a6efd5d694a4f8ce8e79ac44c7a14f7..135628771807d459fd11bfadb7cd2309e3fde132 100644 (file)
@@ -1425,6 +1425,51 @@ static const unsigned int avb2_avtp_match_mux[] = {
        AVB2_AVTP_MATCH_MARK,
 };
 
+/* - CANFD0 ----------------------------------------------------------------- */
+static const unsigned int canfd0_data_pins[] = {
+       /* CANFD0_TX, CANFD0_RX */
+       RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11),
+};
+static const unsigned int canfd0_data_mux[] = {
+       CANFD0_TX_MARK, CANFD0_RX_MARK,
+};
+
+/* - CANFD1 ----------------------------------------------------------------- */
+static const unsigned int canfd1_data_pins[] = {
+       /* CANFD1_TX, CANFD1_RX */
+       RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 19),
+};
+static const unsigned int canfd1_data_mux[] = {
+       CANFD1_TX_MARK, CANFD1_RX_MARK,
+};
+
+/* - CANFD2 ----------------------------------------------------------------- */
+static const unsigned int canfd2_data_pins[] = {
+       /* CANFD2_TX, CANFD2_RX */
+       RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13),
+};
+static const unsigned int canfd2_data_mux[] = {
+       CANFD2_TX_MARK, CANFD2_RX_MARK,
+};
+
+/* - CANFD3 ----------------------------------------------------------------- */
+static const unsigned int canfd3_data_pins[] = {
+       /* CANFD3_TX, CANFD3_RX */
+       RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15),
+};
+static const unsigned int canfd3_data_mux[] = {
+       CANFD3_TX_MARK, CANFD3_RX_MARK,
+};
+
+/* - CANFD Clock ------------------------------------------------------------ */
+static const unsigned int can_clk_pins[] = {
+       /* CAN_CLK */
+       RCAR_GP_PIN(2, 9),
+};
+static const unsigned int can_clk_mux[] = {
+       CAN_CLK_MARK,
+};
+
 /* - HSCIF0 ----------------------------------------------------------------- */
 static const unsigned int hscif0_data_pins[] = {
        /* HRX0, HTX0 */
@@ -2296,6 +2341,12 @@ static const struct sh_pfc_pin_group pinmux_groups[] = {
        SH_PFC_PIN_GROUP(avb2_avtp_capture),
        SH_PFC_PIN_GROUP(avb2_avtp_match),
 
+       SH_PFC_PIN_GROUP(canfd0_data),
+       SH_PFC_PIN_GROUP(canfd1_data),
+       SH_PFC_PIN_GROUP(canfd2_data),
+       SH_PFC_PIN_GROUP(canfd3_data),
+       SH_PFC_PIN_GROUP(can_clk),
+
        SH_PFC_PIN_GROUP(hscif0_data),
        SH_PFC_PIN_GROUP(hscif0_clk),
        SH_PFC_PIN_GROUP(hscif0_ctrl),
@@ -2457,6 +2508,26 @@ static const char * const avb2_groups[] = {
        "avb2_avtp_match",
 };
 
+static const char * const canfd0_groups[] = {
+       "canfd0_data",
+};
+
+static const char * const canfd1_groups[] = {
+       "canfd1_data",
+};
+
+static const char * const canfd2_groups[] = {
+       "canfd2_data",
+};
+
+static const char * const canfd3_groups[] = {
+       "canfd3_data",
+};
+
+static const char * const can_clk_groups[] = {
+       "can_clk",
+};
+
 static const char * const hscif0_groups[] = {
        "hscif0_data",
        "hscif0_clk",
@@ -2660,6 +2731,12 @@ static const struct sh_pfc_function pinmux_functions[] = {
        SH_PFC_FUNCTION(avb1),
        SH_PFC_FUNCTION(avb2),
 
+       SH_PFC_FUNCTION(canfd0),
+       SH_PFC_FUNCTION(canfd1),
+       SH_PFC_FUNCTION(canfd2),
+       SH_PFC_FUNCTION(canfd3),
+       SH_PFC_FUNCTION(can_clk),
+
        SH_PFC_FUNCTION(hscif0),
        SH_PFC_FUNCTION(hscif1),
        SH_PFC_FUNCTION(hscif2),