/*
 * Copyright (c) 2021 ITE Corporation. All Rights Reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

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

/ {
	it8xxx2_alts_map {
		compatible = "ite,it8xxx2-pinctrl-conf";

		/* ADC alternate function */
		pinctrl_adc0: adc0 {
			pinctrls = <&pinmuxi 0 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc1: adc1 {
			pinctrls = <&pinmuxi 1 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc2: adc2 {
			pinctrls = <&pinmuxi 2 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc3: adc3 {
			pinctrls = <&pinmuxi 3 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc4: adc4 {
			pinctrls = <&pinmuxi 4 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc5: adc5 {
			pinctrls = <&pinmuxi 5 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc6: adc6 {
			pinctrls = <&pinmuxi 6 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc7: adc7 {
			pinctrls = <&pinmuxi 7 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc13: adc13 {
			pinctrls = <&pinmuxl 0 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc14: adc14 {
			pinctrls = <&pinmuxl 1 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc15: adc15 {
			pinctrls = <&pinmuxl 2 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_adc16: adc16 {
			pinctrls = <&pinmuxl 3 IT8XXX2_PINMUX_FUNC_1>;
		};

		/* PWM alternate function */
		pinctrl_pwm0: pwm0 {
			pinctrls = <&pinmuxa 0 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_pwm1: pwm1 {
			pinctrls = <&pinmuxa 1 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_pwm2: pwm2 {
			pinctrls = <&pinmuxa 2 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_pwm3: pwm3 {
			pinctrls = <&pinmuxa 3 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_pwm4: pwm4 {
			pinctrls = <&pinmuxa 4 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_pwm5: pwm5 {
			pinctrls = <&pinmuxa 5 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_pwm6: pwm6 {
			pinctrls = <&pinmuxa 6 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_pwm7: pwm7 {
			pinctrls = <&pinmuxa 7 IT8XXX2_PINMUX_FUNC_1>;
		};

		/* Tachometer alternate function */
		pinctrl_tach0a: tach0a {
			pinctrls = <&pinmuxd 6 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_tach0b: tach0b {
			pinctrls = <&pinmuxj 2 IT8XXX2_PINMUX_FUNC_3>;
		};
		pinctrl_tach1a: tach1a {
			pinctrls = <&pinmuxd 7 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_tach1b: tach1b {
			pinctrls = <&pinmuxj 3 IT8XXX2_PINMUX_FUNC_3>;
		};

		/* I2C alternate function */
		pinctrl_i2c_clk0: i2c_clk0 {
			pinctrls = <&pinmuxb 3 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_i2c_data0: i2c_data0 {
			pinctrls = <&pinmuxb 4 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_i2c_clk1: i2c_clk1 {
			pinctrls = <&pinmuxc 1 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_i2c_data1: i2c_data1 {
			pinctrls = <&pinmuxc 2 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_i2c_clk2: i2c_clk2 {
			pinctrls = <&pinmuxf 6 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_i2c_data2: i2c_data2 {
			pinctrls = <&pinmuxf 7 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_i2c_clk3_gph1: i2c_clk3_gph1 {
			pinctrls = <&pinmuxh 1 IT8XXX2_PINMUX_FUNC_3>;
		};
		pinctrl_i2c_data3_gph2: i2c_data3_gph2 {
			pinctrls = <&pinmuxh 2 IT8XXX2_PINMUX_FUNC_3>;
		};
		pinctrl_i2c_clk3_gpf2: i2c_clk3_gpf2 {
			pinctrls = <&pinmuxf 2 IT8XXX2_PINMUX_FUNC_4>;
		};
		pinctrl_i2c_data3_gpf3: i2c_data3_gpf3 {
			pinctrls = <&pinmuxf 3 IT8XXX2_PINMUX_FUNC_4>;
		};
		pinctrl_i2c_clk4: i2c_clk4 {
			pinctrls = <&pinmuxe 0 IT8XXX2_PINMUX_FUNC_3>;
		};
		pinctrl_i2c_data4: i2c_data4 {
			pinctrls = <&pinmuxe 7 IT8XXX2_PINMUX_FUNC_3>;
		};
		pinctrl_i2c_clk5: i2c_clk5 {
			pinctrls = <&pinmuxa 4 IT8XXX2_PINMUX_FUNC_3>;
		};
		pinctrl_i2c_data5: i2c_data5 {
			pinctrls = <&pinmuxa 5 IT8XXX2_PINMUX_FUNC_3>;
		};

		/* SHI alternate function */
		pinctrl_shi_mosi: shi_mosi {
			pinctrls = <&pinmuxm 0 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_shi_miso: shi_miso {
			pinctrls = <&pinmuxm 1 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_shi_clk: shi_clk {
			pinctrls = <&pinmuxm 4 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_shi_cs: shi_cs {
			pinctrls = <&pinmuxm 5 IT8XXX2_PINMUX_FUNC_1>;
		};

		/* PECI alternate function */
		pinctrl_peci: peci {
			pinctrls = <&pinmuxf 6 IT8XXX2_PINMUX_FUNC_3>;
		};

		/* Keyboard alternate function */
		pinctrl_kso16: kso16 {
			pinctrls = <&pinmuxc 3 IT8XXX2_PINMUX_FUNC_1>;
		};
		pinctrl_kso17: kso17 {
			pinctrls = <&pinmuxc 5 IT8XXX2_PINMUX_FUNC_1>;
		};
	};
};
