/*
 * Copyright (c) 2022, Gerson Fernando Budke <nandojve@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */

#include <dt-bindings/pinctrl/same54p-pinctrl.h>

&pinctrl {
	pwm_default: pwm_default {
		group1 {
			pinmux = <PC18F_TCC0_WO2>;
		};
	};

	gmac_rmii: gmac_rmii {
		group1 {
			pinmux = <PA14L_GMAC_GTXCK>,
				 <PA17L_GMAC_GTXEN>,
				 <PA18L_GMAC_GTX0>,
				 <PA19L_GMAC_GTX1>,
				 <PC20L_GMAC_GRXDV>,
				 <PA13L_GMAC_GRX0>,
				 <PA12L_GMAC_GRX1>,
				 <PA15L_GMAC_GRXER>;
		};
	};

	mdio_default: mdio_default {
		group1 {
			pinmux = <PC11L_GMAC_GMDC>,
				 <PC12L_GMAC_GMDIO>;
		};
	};

	sercom7_i2c_default: sercom7_i2c_default {
		group1 {
			pinmux = <PD8C_SERCOM7_PAD0>,
				 <PD9C_SERCOM7_PAD1>;
		};
	};

	sercom4_spi_default: sercom4_spi_default {
		group1 {
			pinmux = <PB26D_SERCOM4_PAD1>,
				 <PB27D_SERCOM4_PAD0>,
				 <PB29D_SERCOM4_PAD3>;
		};
	};

	sercom2_uart_default: sercom2_uart_default {
		group1 {
			pinmux = <PB25D_SERCOM2_PAD0>,
				 <PB24D_SERCOM2_PAD1>;
		};
	};

	usb_dc_default: usb_dc_default {
		group1 {
			pinmux = <PA25H_USB_DP>,
				 <PA24H_USB_DM>;
		};
	};
};
