/*
 * Device Tree Source for UniPhier SoCs default pinctrl settings
 *
 * Copyright (C) 2015-2017 Socionext Inc.
 *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
 *
 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 */

&pinctrl {
	pinctrl_aout: aout_grp {
		groups = "aout";
		function = "aout";
	};

	pinctrl_emmc: emmc_grp {
		groups = "emmc", "emmc_dat8";
		function = "emmc";
	};

	pinctrl_emmc_1v8: emmc_grp_1v8 {
		groups = "emmc", "emmc_dat8";
		function = "emmc";
	};

	pinctrl_ether_mii: ether_mii_grp {
		groups = "ether_mii";
		function = "ether_mii";
	};

	pinctrl_ether_rgmii: ether_rgmii_grp {
		groups = "ether_rgmii";
		function = "ether_rgmii";
	};

	pinctrl_ether_rmii: ether_rmii_grp {
		groups = "ether_rmii";
		function = "ether_rmii";
	};

	pinctrl_i2c0: i2c0_grp {
		groups = "i2c0";
		function = "i2c0";
	};

	pinctrl_i2c1: i2c1_grp {
		groups = "i2c1";
		function = "i2c1";
	};

	pinctrl_i2c2: i2c2_grp {
		groups = "i2c2";
		function = "i2c2";
	};

	pinctrl_i2c3: i2c3_grp {
		groups = "i2c3";
		function = "i2c3";
	};

	pinctrl_i2c4: i2c4_grp {
		groups = "i2c4";
		function = "i2c4";
	};

	pinctrl_nand: nand_grp {
		groups = "nand";
		function = "nand";
	};

	pinctrl_nand2cs: nand2cs_grp {
		groups = "nand", "nand_cs1";
		function = "nand";
	};

	pinctrl_sd: sd_grp {
		groups = "sd";
		function = "sd";
	};

	pinctrl_sd_1v8: sd_grp_1v8 {
		groups = "sd";
		function = "sd";
	};

	pinctrl_sd1: sd1_grp {
		groups = "sd1";
		function = "sd1";
	};

	pinctrl_sd1_1v8: sd1_grp_1v8 {
		groups = "sd1";
		function = "sd1";
	};

	pinctrl_system_bus: system_bus_grp {
		groups = "system_bus", "system_bus_cs1";
		function = "system_bus";
	};

	pinctrl_uart0: uart0_grp {
		groups = "uart0";
		function = "uart0";
	};

	pinctrl_uart1: uart1_grp {
		groups = "uart1";
		function = "uart1";
	};

	pinctrl_uart2: uart2_grp {
		groups = "uart2";
		function = "uart2";
	};

	pinctrl_uart3: uart3_grp {
		groups = "uart3";
		function = "uart3";
	};

	pinctrl_usb0: usb0_grp {
		groups = "usb0";
		function = "usb0";
	};

	pinctrl_usb1: usb1_grp {
		groups = "usb1";
		function = "usb1";
	};

	pinctrl_usb2: usb2_grp {
		groups = "usb2";
		function = "usb2";
	};

	pinctrl_usb3: usb3_grp {
		groups = "usb3";
		function = "usb3";
	};
};
