/*
 * 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_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";
	};
};
