// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright 2014 Linaro Ltd.
 */

#include "ste-ab8500.dtsi"

/ {
	soc {
		prcmu@80157000 {
			ab8500 {
				ab8500-gpio {
					/* Hog a few default settings */
					pinctrl-names = "default";
					pinctrl-0 = <&gpio2_default_mode>,
						    <&gpio4_default_mode>,
						    <&gpio10_default_mode>,
						    <&gpio11_default_mode>,
						    <&gpio12_default_mode>,
						    <&gpio13_default_mode>,
						    <&gpio16_default_mode>,
						    <&gpio24_default_mode>,
						    <&gpio25_default_mode>,
						    <&gpio36_default_mode>,
						    <&gpio37_default_mode>,
						    <&gpio38_default_mode>,
						    <&gpio39_default_mode>,
						    <&gpio42_default_mode>,
						    <&gpio26_default_mode>,
						    <&gpio35_default_mode>,
						    <&ycbcr_default_mode>,
						    <&pwm_default_mode>,
						    <&adi1_default_mode>,
						    <&usbuicc_default_mode>,
						    <&dmic_default_mode>,
						    <&extcpena_default_mode>,
						    <&modsclsda_default_mode>;

					/*
					 * Pins 2, 4, 10, 11, 12, 13, 16, 24, 25, 36, 37, 38, 39 and 42
					 * are muxed in as GPIO, and configured as INPUT PULL DOWN
					 */
					gpio2 {
						gpio2_default_mode: gpio2_default {
							default_mux {
								function = "gpio";
								groups = "gpio2_a_1";
							};
							default_cfg {
								pins = "GPIO2_T9";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio4 {
						gpio4_default_mode: gpio4_default {
							default_mux {
								function = "gpio";
								groups = "gpio4_a_1";
							};
							default_cfg {
								pins = "GPIO4_W2";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio10 {
						gpio10_default_mode: gpio10_default {
							default_mux {
								function = "gpio";
								groups = "gpio10_d_1";
							};
							default_cfg {
								pins = "GPIO10_U17";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio11 {
						gpio11_default_mode: gpio11_default {
							default_mux {
								function = "gpio";
								groups = "gpio11_d_1";
							};
							default_cfg {
								pins = "GPIO11_AA18";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio12 {
						gpio12_default_mode: gpio12_default {
							default_mux {
								function = "gpio";
								groups = "gpio12_d_1";
							};
							default_cfg {
								pins = "GPIO12_U16";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio13 {
						gpio13_default_mode: gpio13_default {
							default_mux {
								function = "gpio";
								groups = "gpio13_d_1";
							};
							default_cfg {
								pins = "GPIO13_W17";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio16 {
						gpio16_default_mode: gpio16_default {
							default_mux {
								function = "gpio";
								groups = "gpio16_a_1";
							};
							default_cfg {
								pins = "GPIO16_F15";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio24 {
						gpio24_default_mode: gpio24_default {
							default_mux {
								function = "gpio";
								groups = "gpio24_a_1";
							};
							default_cfg {
								pins = "GPIO24_T14";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio25 {
						gpio25_default_mode: gpio25_default {
							default_mux {
								function = "gpio";
								groups = "gpio25_a_1";
							};
							default_cfg {
								pins = "GPIO25_R16";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio36 {
						gpio36_default_mode: gpio36_default {
							default_mux {
								function = "gpio";
								groups = "gpio36_a_1";
							};
							default_cfg {
								pins = "GPIO36_A17";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio37 {
						gpio37_default_mode: gpio37_default {
							default_mux {
								function = "gpio";
								groups = "gpio37_a_1";
							};
							default_cfg {
								pins = "GPIO37_E15";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio38 {
						gpio38_default_mode: gpio38_default {
							default_mux {
								function = "gpio";
								groups = "gpio38_a_1";
							};
							default_cfg {
								pins = "GPIO38_C17";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio39 {
						gpio39_default_mode: gpio39_default {
							default_mux {
								function = "gpio";
								groups = "gpio39_a_1";
							};
							default_cfg {
								pins = "GPIO39_E16";
								input-enable;
								bias-pull-down;
							};
						};
					};
					gpio42 {
						gpio42_default_mode: gpio42_default {
							default_mux {
								function = "gpio";
								groups = "gpio42_a_1";
							};
							default_cfg {
								pins = "GPIO42_U2";
								input-enable;
								bias-pull-down;
							};
						};
					};
					/*
					 * Pins 26 and 35 muxed in as GPIO, and configured as OUTPUT LOW
					 */
					gpio26 {
						gpio26_default_mode: gpio26_default {
							default_mux {
								function = "gpio";
								groups = "gpio26_d_1";
							};
							default_cfg {
								pins = "GPIO26_M16";
								output-low;
							};
						};
					};
					gpio35 {
						gpio35_default_mode: gpio35_default {
							default_mux {
								function = "gpio";
								groups = "gpio35_d_1";
							};
							default_cfg {
								pins = "GPIO35_W15";
								output-low;
							};
						};
					};
					/*
					 * This sets up the YCBCR connector pins, i.e. analog video out.
					 * Set as input with no bias.
					 */
					ycbcr {
						ycbcr_default_mode: ycbcr_default {
							default_mux {
								function = "ycbcr";
								groups = "ycbcr0123_d_1";
							};
							default_cfg {
								pins = "GPIO6_Y18",
									 "GPIO7_AA20",
									 "GPIO8_W18",
									 "GPIO9_AA19";
								input-enable;
								bias-disable;
							};
						};
					};
					/* This sets up the PWM pins 14 and 15 */
					pwm {
						pwm_default_mode: pwm_default {
							default_mux {
								function = "pwmout";
								groups = "pwmout1_d_1", "pwmout2_d_1";
							};
							default_cfg {
								pins = "GPIO14_F14",
									 "GPIO15_B17";
								input-enable;
								bias-pull-down;
							};
						};
					};
					/* This sets up audio interface 1 */
					adi1 {
						adi1_default_mode: adi1_default {
							default_mux {
								function = "adi1";
								groups = "adi1_d_1";
							};
							default_cfg {
								pins = "GPIO17_P5",
									 "GPIO18_R5",
									 "GPIO19_U5",
									 "GPIO20_T5";
								input-enable;
								bias-pull-down;
							};
						};
					};
					/* This sets up the USB UICC pins */
					usbuicc {
						usbuicc_default_mode: usbuicc_default {
							default_mux {
								function = "usbuicc";
								groups = "usbuicc_d_1";
							};
							default_cfg {
								pins = "GPIO21_H19",
									 "GPIO22_G20",
									 "GPIO23_G19";
								input-enable;
								bias-pull-down;
							};
						};
					};
					/* This sets up the microphone pins */
					dmic {
						dmic_default_mode: dmic_default {
							default_mux {
								function = "dmic";
								groups = "dmic12_d_1",
									 "dmic34_d_1",
									 "dmic56_d_1";
							};
							default_cfg {
								pins = "GPIO27_J6",
									 "GPIO28_K6",
									 "GPIO29_G6",
									 "GPIO30_H6",
									 "GPIO31_F5",
									 "GPIO32_G5";
								input-enable;
								bias-pull-down;
							};
						};
					};
					extcpena {
						extcpena_default_mode: extcpena_default {
							default_mux {
								function = "extcpena";
								groups = "extcpena_d_1";
							};
							default_cfg {
								pins = "GPIO34_R17";
								input-enable;
								bias-pull-down;
							};
						};
					};
					/* Modem I2C setup (SCL and SDA pins) */
					modsclsda {
						modsclsda_default_mode: modsclsda_default {
							default_mux {
								function = "modsclsda";
								groups = "modsclsda_d_1";
							};
							default_cfg {
								pins = "GPIO40_T19",
									"GPIO41_U19";
								input-enable;
								bias-pull-down;
							};
						};
					};
					/*
					 * Clock output pins associated with regulators.
					 */
					sysclkreq2 {
						sysclkreq2_default_mode: sysclkreq2_default {
							default_mux {
								function = "sysclkreq";
								groups = "sysclkreq2_d_1";
							};
							default_cfg {
								pins = "GPIO1_T10";
								input-enable;
								bias-disable;
							};
						};
						sysclkreq2_sleep_mode: sysclkreq2_sleep {
							default_mux {
								function = "gpio";
								groups = "gpio1_a_1";
							};
							default_cfg {
								pins = "GPIO1_T10";
								input-enable;
								bias-pull-down;
							};
						};
					};
					sysclkreq4 {
						sysclkreq4_default_mode: sysclkreq4_default {
							default_mux {
								function = "sysclkreq";
								groups = "sysclkreq4_d_1";
							};
							default_cfg {
								pins = "GPIO3_U9";
								input-enable;
								bias-disable;
							};
						};
						sysclkreq4_sleep_mode: sysclkreq4_sleep {
							default_mux {
								function = "gpio";
								groups = "gpio3_a_1";
							};
							default_cfg {
								pins = "GPIO3_U9";
								input-enable;
								bias-pull-down;
							};
						};
					};
				};
			};
		};
	};
};
