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

#include "ste-ab8500.dtsi"

/ {
	soc {
		prcmu@80157000 {
			ab8500 {
				ab8500-gpiocontroller {
					/* 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;
							};
						};
					};
				};
			};
		};
	};
};
