/*
 * 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+	X11
 */

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

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

	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";
	};
};
