/* SPDX-License-Identifier: GPL-2.0-only */

#include <soc/qcom_qup_se.h>

struct qup qup[QUPV3_SE_MAX] = {
	[QUPV3_0_SE0] = { .regs = (void *)QUP_SERIAL0_BASE,
		.pin = { GPIO(0), GPIO(1), GPIO(2), GPIO(3) },
		.func = { GPIO0_FUNC_QUP0_SE0_L0, GPIO1_FUNC_QUP0_SE0_L1,
			GPIO2_FUNC_QUP0_SE0_L2, GPIO3_FUNC_QUP0_SE0_L3 }
		},
	[QUPV3_0_SE1] = { .regs = (void *)QUP_SERIAL1_BASE,
		.pin = { GPIO(4), GPIO(5), GPIO(6), GPIO(7) },
		.func = { GPIO4_FUNC_QUP0_SE1_L0, GPIO5_FUNC_QUP0_SE1_L1,
			GPIO6_FUNC_QUP0_SE1_L2, GPIO7_FUNC_QUP0_SE1_L3 }
		},
	[QUPV3_0_SE2] = { .regs = (void *)QUP_SERIAL2_BASE,
		.pin = { GPIO(8), GPIO(9), GPIO(10), GPIO(11) },
		.func = { GPIO8_FUNC_QUP0_SE2_L0, GPIO9_FUNC_QUP0_SE2_L1,
			GPIO10_FUNC_QUP0_SE2_L2, GPIO11_FUNC_QUP0_SE2_L3 }
		},
	[QUPV3_0_SE3] = { .regs = (void *)QUP_SERIAL3_BASE,
		.pin = { GPIO(12), GPIO(13), GPIO(14), GPIO(15) },
		.func = { GPIO12_FUNC_QUP0_SE3_L0, GPIO13_FUNC_QUP0_SE3_L1,
			GPIO14_FUNC_QUP0_SE3_L2, GPIO15_FUNC_QUP0_SE3_L3 }
		},
	[QUPV3_0_SE4] = { .regs = (void *)QUP_SERIAL4_BASE,
		.pin = { GPIO(16), GPIO(17), GPIO(18), GPIO(19) },
		.func = { GPIO16_FUNC_QUP0_SE4_L0, GPIO17_FUNC_QUP0_SE4_L1,
			GPIO18_FUNC_QUP0_SE4_L2, GPIO19_FUNC_QUP0_SE4_L3 }
		},
	[QUPV3_0_SE5] = { .regs = (void *)QUP_SERIAL5_BASE,
		.pin = { GPIO(20), GPIO(21), GPIO(22), GPIO(23) },
		.func = { GPIO20_FUNC_QUP0_SE5_L0, GPIO21_FUNC_QUP0_SE5_L1,
			GPIO22_FUNC_QUP0_SE5_L2, GPIO23_FUNC_QUP0_SE5_L3 }
		},
	[QUPV3_0_SE6] = { .regs = (void *)QUP_SERIAL6_BASE,
		.pin = { GPIO(24), GPIO(25), GPIO(26), GPIO(27) },
		.func = { GPIO24_FUNC_QUP0_SE6_L0, GPIO25_FUNC_QUP0_SE6_L1,
			GPIO26_FUNC_QUP0_SE6_L2, GPIO27_FUNC_QUP0_SE6_L3 }
		},
	[QUPV3_0_SE7] = { .regs = (void *)QUP_SERIAL7_BASE,
		.pin = { GPIO(14), GPIO(15), GPIO(12), GPIO(13) },
		.func = { GPIO14_FUNC_QUP0_SE7_L0, GPIO15_FUNC_QUP0_SE7_L1,
			GPIO12_FUNC_QUP0_SE7_L2, GPIO13_FUNC_QUP0_SE7_L3 }
		},
	[QUPV3_1_SE0] = { .regs = (void *)QUP_SERIAL8_BASE,
		.pin = { GPIO(32), GPIO(33), GPIO(34), GPIO(35) },
		.func = { GPIO32_FUNC_QUP1_SE0_L0, GPIO33_FUNC_QUP1_SE0_L1,
			GPIO34_FUNC_QUP1_SE0_L2, GPIO35_FUNC_QUP1_SE0_L3 }
		},
	[QUPV3_1_SE1] = { .regs = (void *)QUP_SERIAL9_BASE,
		.pin = { GPIO(36), GPIO(37), GPIO(38), GPIO(39) },
		.func = { GPIO36_FUNC_QUP1_SE1_L0, GPIO37_FUNC_QUP1_SE1_L1,
			GPIO38_FUNC_QUP1_SE1_L2, GPIO39_FUNC_QUP1_SE1_L3 }
		},
	[QUPV3_1_SE2] = { .regs = (void *)QUP_SERIAL10_BASE,
		.pin = { GPIO(40), GPIO(41), GPIO(42), GPIO(43) },
		.func = { GPIO40_FUNC_QUP1_SE2_L0, GPIO41_FUNC_QUP1_SE2_L1,
			GPIO42_FUNC_QUP1_SE2_L2, GPIO43_FUNC_QUP1_SE2_L3 }
		},
	[QUPV3_1_SE3] = { .regs = (void *)QUP_SERIAL11_BASE,
		.pin = { GPIO(44), GPIO(45), GPIO(46), GPIO(47) },
		.func = { GPIO44_FUNC_QUP1_SE3_L0, GPIO45_FUNC_QUP1_SE3_L1,
			GPIO46_FUNC_QUP1_SE3_L2, GPIO47_FUNC_QUP1_SE3_L3 }
		},
	[QUPV3_1_SE4] = { .regs = (void *)QUP_SERIAL12_BASE,
		.pin = { GPIO(48), GPIO(49), GPIO(50), GPIO(51) },
		.func = { GPIO48_FUNC_QUP1_SE4_L0, GPIO49_FUNC_QUP1_SE4_L1,
			GPIO50_FUNC_QUP1_SE4_L2, GPIO51_FUNC_QUP1_SE4_L3 }
		},
	[QUPV3_1_SE5] = { .regs = (void *)QUP_SERIAL13_BASE,
		.pin = { GPIO(52), GPIO(53), GPIO(54), GPIO(55) },
		.func = { GPIO52_FUNC_QUP1_SE5_L0, GPIO53_FUNC_QUP1_SE5_L1,
			GPIO54_FUNC_QUP1_SE5_L2, GPIO55_FUNC_QUP1_SE5_L3 }
		},
	[QUPV3_1_SE6] = { .regs = (void *)QUP_SERIAL14_BASE,
		.pin = { GPIO(56), GPIO(57), GPIO(58), GPIO(59) },
		.func = { GPIO56_FUNC_QUP1_SE6_L0, GPIO57_FUNC_QUP1_SE6_L1,
			GPIO58_FUNC_QUP1_SE6_L2, GPIO59_FUNC_QUP1_SE6_L3 }
		},
	[QUPV3_1_SE7] = { .regs = (void *)QUP_SERIAL15_BASE,
		.pin = { GPIO(54), GPIO(55), GPIO(52), GPIO(53) },
		.func = { GPIO54_FUNC_QUP1_SE7_L0, GPIO55_FUNC_QUP1_SE7_L1,
			GPIO52_FUNC_QUP1_SE7_L2, GPIO53_FUNC_QUP1_SE7_L3 }
		},
	[QUPV3_2_SE0] = { .regs = (void *)QUP_SERIAL16_BASE,
		.pin = { GPIO(64), GPIO(65), GPIO(66), GPIO(67) },
		.func = { GPIO64_FUNC_QUP2_SE0_L0, GPIO65_FUNC_QUP2_SE0_L1,
			GPIO66_FUNC_QUP2_SE0_L2, GPIO67_FUNC_QUP2_SE0_L3 }
		},
	[QUPV3_2_SE1] = { .regs = (void *)QUP_SERIAL17_BASE,
		.pin = { GPIO(68), GPIO(69), GPIO(70), GPIO(71) },
		.func = { GPIO68_FUNC_QUP2_SE1_L0, GPIO69_FUNC_QUP2_SE1_L1,
			GPIO70_FUNC_QUP2_SE1_L2, GPIO71_FUNC_QUP2_SE1_L3 }
		},
	[QUPV3_2_SE2] = { .regs = (void *)QUP_SERIAL18_BASE,
		.pin = { GPIO(72), GPIO(73), GPIO(74), GPIO(75) },
		.func = { GPIO72_FUNC_QUP2_SE2_L0, GPIO73_FUNC_QUP2_SE2_L1,
			GPIO74_FUNC_QUP2_SE2_L2, GPIO75_FUNC_QUP2_SE2_L3 }
		},
	[QUPV3_2_SE3] = { .regs = (void *)QUP_SERIAL19_BASE,
		.pin = { GPIO(76), GPIO(77), GPIO(78), GPIO(79) },
		.func = { GPIO76_FUNC_QUP2_SE3_L0, GPIO77_FUNC_QUP2_SE3_L1,
			GPIO78_FUNC_QUP2_SE3_L2, GPIO79_FUNC_QUP2_SE3_L3 }
		},
	[QUPV3_2_SE4] = { .regs = (void *)QUP_SERIAL20_BASE,
		.pin = { GPIO(80), GPIO(81), GPIO(82), GPIO(83) },
		.func = { GPIO80_FUNC_QUP2_SE4_L0, GPIO81_FUNC_QUP2_SE4_L1,
			GPIO82_FUNC_QUP2_SE4_L2, GPIO83_FUNC_QUP2_SE4_L3 }
		},
	[QUPV3_2_SE5] = { .regs = (void *)QUP_SERIAL21_BASE,
		.pin = { GPIO(84), GPIO(85), GPIO(86), GPIO(87) },
		.func = { GPIO84_FUNC_QUP2_SE5_L0, GPIO85_FUNC_QUP2_SE5_L1,
			GPIO86_FUNC_QUP2_SE5_L2, GPIO87_FUNC_QUP2_SE5_L3 }
		},
	[QUPV3_2_SE6] = { .regs = (void *)QUP_SERIAL22_BASE,
		.pin = { GPIO(88), GPIO(89), GPIO(90), GPIO(91) },
		.func = { GPIO88_FUNC_QUP2_SE6_L0, GPIO89_FUNC_QUP2_SE6_L1,
			GPIO90_FUNC_QUP2_SE6_L2, GPIO91_FUNC_QUP2_SE6_L3 }
		},
	[QUPV3_2_SE7] = { .regs = (void *)QUP_SERIAL23_BASE,
		.pin = { GPIO(86), GPIO(87), GPIO(84), GPIO(85) },
		.func = { GPIO86_FUNC_QUP2_SE7_L0, GPIO87_FUNC_QUP2_SE7_L1,
			GPIO84_FUNC_QUP2_SE7_L2, GPIO85_FUNC_QUP2_SE7_L3 }
		},
};
