162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2015, Sony Mobile Communications AB. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <linux/module.h> 762306a36Sopenharmony_ci#include <linux/of.h> 862306a36Sopenharmony_ci#include <linux/platform_device.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include "pinctrl-msm.h" 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cistatic const struct pinctrl_pin_desc msm8660_pins[] = { 1362306a36Sopenharmony_ci PINCTRL_PIN(0, "GPIO_0"), 1462306a36Sopenharmony_ci PINCTRL_PIN(1, "GPIO_1"), 1562306a36Sopenharmony_ci PINCTRL_PIN(2, "GPIO_2"), 1662306a36Sopenharmony_ci PINCTRL_PIN(3, "GPIO_3"), 1762306a36Sopenharmony_ci PINCTRL_PIN(4, "GPIO_4"), 1862306a36Sopenharmony_ci PINCTRL_PIN(5, "GPIO_5"), 1962306a36Sopenharmony_ci PINCTRL_PIN(6, "GPIO_6"), 2062306a36Sopenharmony_ci PINCTRL_PIN(7, "GPIO_7"), 2162306a36Sopenharmony_ci PINCTRL_PIN(8, "GPIO_8"), 2262306a36Sopenharmony_ci PINCTRL_PIN(9, "GPIO_9"), 2362306a36Sopenharmony_ci PINCTRL_PIN(10, "GPIO_10"), 2462306a36Sopenharmony_ci PINCTRL_PIN(11, "GPIO_11"), 2562306a36Sopenharmony_ci PINCTRL_PIN(12, "GPIO_12"), 2662306a36Sopenharmony_ci PINCTRL_PIN(13, "GPIO_13"), 2762306a36Sopenharmony_ci PINCTRL_PIN(14, "GPIO_14"), 2862306a36Sopenharmony_ci PINCTRL_PIN(15, "GPIO_15"), 2962306a36Sopenharmony_ci PINCTRL_PIN(16, "GPIO_16"), 3062306a36Sopenharmony_ci PINCTRL_PIN(17, "GPIO_17"), 3162306a36Sopenharmony_ci PINCTRL_PIN(18, "GPIO_18"), 3262306a36Sopenharmony_ci PINCTRL_PIN(19, "GPIO_19"), 3362306a36Sopenharmony_ci PINCTRL_PIN(20, "GPIO_20"), 3462306a36Sopenharmony_ci PINCTRL_PIN(21, "GPIO_21"), 3562306a36Sopenharmony_ci PINCTRL_PIN(22, "GPIO_22"), 3662306a36Sopenharmony_ci PINCTRL_PIN(23, "GPIO_23"), 3762306a36Sopenharmony_ci PINCTRL_PIN(24, "GPIO_24"), 3862306a36Sopenharmony_ci PINCTRL_PIN(25, "GPIO_25"), 3962306a36Sopenharmony_ci PINCTRL_PIN(26, "GPIO_26"), 4062306a36Sopenharmony_ci PINCTRL_PIN(27, "GPIO_27"), 4162306a36Sopenharmony_ci PINCTRL_PIN(28, "GPIO_28"), 4262306a36Sopenharmony_ci PINCTRL_PIN(29, "GPIO_29"), 4362306a36Sopenharmony_ci PINCTRL_PIN(30, "GPIO_30"), 4462306a36Sopenharmony_ci PINCTRL_PIN(31, "GPIO_31"), 4562306a36Sopenharmony_ci PINCTRL_PIN(32, "GPIO_32"), 4662306a36Sopenharmony_ci PINCTRL_PIN(33, "GPIO_33"), 4762306a36Sopenharmony_ci PINCTRL_PIN(34, "GPIO_34"), 4862306a36Sopenharmony_ci PINCTRL_PIN(35, "GPIO_35"), 4962306a36Sopenharmony_ci PINCTRL_PIN(36, "GPIO_36"), 5062306a36Sopenharmony_ci PINCTRL_PIN(37, "GPIO_37"), 5162306a36Sopenharmony_ci PINCTRL_PIN(38, "GPIO_38"), 5262306a36Sopenharmony_ci PINCTRL_PIN(39, "GPIO_39"), 5362306a36Sopenharmony_ci PINCTRL_PIN(40, "GPIO_40"), 5462306a36Sopenharmony_ci PINCTRL_PIN(41, "GPIO_41"), 5562306a36Sopenharmony_ci PINCTRL_PIN(42, "GPIO_42"), 5662306a36Sopenharmony_ci PINCTRL_PIN(43, "GPIO_43"), 5762306a36Sopenharmony_ci PINCTRL_PIN(44, "GPIO_44"), 5862306a36Sopenharmony_ci PINCTRL_PIN(45, "GPIO_45"), 5962306a36Sopenharmony_ci PINCTRL_PIN(46, "GPIO_46"), 6062306a36Sopenharmony_ci PINCTRL_PIN(47, "GPIO_47"), 6162306a36Sopenharmony_ci PINCTRL_PIN(48, "GPIO_48"), 6262306a36Sopenharmony_ci PINCTRL_PIN(49, "GPIO_49"), 6362306a36Sopenharmony_ci PINCTRL_PIN(50, "GPIO_50"), 6462306a36Sopenharmony_ci PINCTRL_PIN(51, "GPIO_51"), 6562306a36Sopenharmony_ci PINCTRL_PIN(52, "GPIO_52"), 6662306a36Sopenharmony_ci PINCTRL_PIN(53, "GPIO_53"), 6762306a36Sopenharmony_ci PINCTRL_PIN(54, "GPIO_54"), 6862306a36Sopenharmony_ci PINCTRL_PIN(55, "GPIO_55"), 6962306a36Sopenharmony_ci PINCTRL_PIN(56, "GPIO_56"), 7062306a36Sopenharmony_ci PINCTRL_PIN(57, "GPIO_57"), 7162306a36Sopenharmony_ci PINCTRL_PIN(58, "GPIO_58"), 7262306a36Sopenharmony_ci PINCTRL_PIN(59, "GPIO_59"), 7362306a36Sopenharmony_ci PINCTRL_PIN(60, "GPIO_60"), 7462306a36Sopenharmony_ci PINCTRL_PIN(61, "GPIO_61"), 7562306a36Sopenharmony_ci PINCTRL_PIN(62, "GPIO_62"), 7662306a36Sopenharmony_ci PINCTRL_PIN(63, "GPIO_63"), 7762306a36Sopenharmony_ci PINCTRL_PIN(64, "GPIO_64"), 7862306a36Sopenharmony_ci PINCTRL_PIN(65, "GPIO_65"), 7962306a36Sopenharmony_ci PINCTRL_PIN(66, "GPIO_66"), 8062306a36Sopenharmony_ci PINCTRL_PIN(67, "GPIO_67"), 8162306a36Sopenharmony_ci PINCTRL_PIN(68, "GPIO_68"), 8262306a36Sopenharmony_ci PINCTRL_PIN(69, "GPIO_69"), 8362306a36Sopenharmony_ci PINCTRL_PIN(70, "GPIO_70"), 8462306a36Sopenharmony_ci PINCTRL_PIN(71, "GPIO_71"), 8562306a36Sopenharmony_ci PINCTRL_PIN(72, "GPIO_72"), 8662306a36Sopenharmony_ci PINCTRL_PIN(73, "GPIO_73"), 8762306a36Sopenharmony_ci PINCTRL_PIN(74, "GPIO_74"), 8862306a36Sopenharmony_ci PINCTRL_PIN(75, "GPIO_75"), 8962306a36Sopenharmony_ci PINCTRL_PIN(76, "GPIO_76"), 9062306a36Sopenharmony_ci PINCTRL_PIN(77, "GPIO_77"), 9162306a36Sopenharmony_ci PINCTRL_PIN(78, "GPIO_78"), 9262306a36Sopenharmony_ci PINCTRL_PIN(79, "GPIO_79"), 9362306a36Sopenharmony_ci PINCTRL_PIN(80, "GPIO_80"), 9462306a36Sopenharmony_ci PINCTRL_PIN(81, "GPIO_81"), 9562306a36Sopenharmony_ci PINCTRL_PIN(82, "GPIO_82"), 9662306a36Sopenharmony_ci PINCTRL_PIN(83, "GPIO_83"), 9762306a36Sopenharmony_ci PINCTRL_PIN(84, "GPIO_84"), 9862306a36Sopenharmony_ci PINCTRL_PIN(85, "GPIO_85"), 9962306a36Sopenharmony_ci PINCTRL_PIN(86, "GPIO_86"), 10062306a36Sopenharmony_ci PINCTRL_PIN(87, "GPIO_87"), 10162306a36Sopenharmony_ci PINCTRL_PIN(88, "GPIO_88"), 10262306a36Sopenharmony_ci PINCTRL_PIN(89, "GPIO_89"), 10362306a36Sopenharmony_ci PINCTRL_PIN(90, "GPIO_90"), 10462306a36Sopenharmony_ci PINCTRL_PIN(91, "GPIO_91"), 10562306a36Sopenharmony_ci PINCTRL_PIN(92, "GPIO_92"), 10662306a36Sopenharmony_ci PINCTRL_PIN(93, "GPIO_93"), 10762306a36Sopenharmony_ci PINCTRL_PIN(94, "GPIO_94"), 10862306a36Sopenharmony_ci PINCTRL_PIN(95, "GPIO_95"), 10962306a36Sopenharmony_ci PINCTRL_PIN(96, "GPIO_96"), 11062306a36Sopenharmony_ci PINCTRL_PIN(97, "GPIO_97"), 11162306a36Sopenharmony_ci PINCTRL_PIN(98, "GPIO_98"), 11262306a36Sopenharmony_ci PINCTRL_PIN(99, "GPIO_99"), 11362306a36Sopenharmony_ci PINCTRL_PIN(100, "GPIO_100"), 11462306a36Sopenharmony_ci PINCTRL_PIN(101, "GPIO_101"), 11562306a36Sopenharmony_ci PINCTRL_PIN(102, "GPIO_102"), 11662306a36Sopenharmony_ci PINCTRL_PIN(103, "GPIO_103"), 11762306a36Sopenharmony_ci PINCTRL_PIN(104, "GPIO_104"), 11862306a36Sopenharmony_ci PINCTRL_PIN(105, "GPIO_105"), 11962306a36Sopenharmony_ci PINCTRL_PIN(106, "GPIO_106"), 12062306a36Sopenharmony_ci PINCTRL_PIN(107, "GPIO_107"), 12162306a36Sopenharmony_ci PINCTRL_PIN(108, "GPIO_108"), 12262306a36Sopenharmony_ci PINCTRL_PIN(109, "GPIO_109"), 12362306a36Sopenharmony_ci PINCTRL_PIN(110, "GPIO_110"), 12462306a36Sopenharmony_ci PINCTRL_PIN(111, "GPIO_111"), 12562306a36Sopenharmony_ci PINCTRL_PIN(112, "GPIO_112"), 12662306a36Sopenharmony_ci PINCTRL_PIN(113, "GPIO_113"), 12762306a36Sopenharmony_ci PINCTRL_PIN(114, "GPIO_114"), 12862306a36Sopenharmony_ci PINCTRL_PIN(115, "GPIO_115"), 12962306a36Sopenharmony_ci PINCTRL_PIN(116, "GPIO_116"), 13062306a36Sopenharmony_ci PINCTRL_PIN(117, "GPIO_117"), 13162306a36Sopenharmony_ci PINCTRL_PIN(118, "GPIO_118"), 13262306a36Sopenharmony_ci PINCTRL_PIN(119, "GPIO_119"), 13362306a36Sopenharmony_ci PINCTRL_PIN(120, "GPIO_120"), 13462306a36Sopenharmony_ci PINCTRL_PIN(121, "GPIO_121"), 13562306a36Sopenharmony_ci PINCTRL_PIN(122, "GPIO_122"), 13662306a36Sopenharmony_ci PINCTRL_PIN(123, "GPIO_123"), 13762306a36Sopenharmony_ci PINCTRL_PIN(124, "GPIO_124"), 13862306a36Sopenharmony_ci PINCTRL_PIN(125, "GPIO_125"), 13962306a36Sopenharmony_ci PINCTRL_PIN(126, "GPIO_126"), 14062306a36Sopenharmony_ci PINCTRL_PIN(127, "GPIO_127"), 14162306a36Sopenharmony_ci PINCTRL_PIN(128, "GPIO_128"), 14262306a36Sopenharmony_ci PINCTRL_PIN(129, "GPIO_129"), 14362306a36Sopenharmony_ci PINCTRL_PIN(130, "GPIO_130"), 14462306a36Sopenharmony_ci PINCTRL_PIN(131, "GPIO_131"), 14562306a36Sopenharmony_ci PINCTRL_PIN(132, "GPIO_132"), 14662306a36Sopenharmony_ci PINCTRL_PIN(133, "GPIO_133"), 14762306a36Sopenharmony_ci PINCTRL_PIN(134, "GPIO_134"), 14862306a36Sopenharmony_ci PINCTRL_PIN(135, "GPIO_135"), 14962306a36Sopenharmony_ci PINCTRL_PIN(136, "GPIO_136"), 15062306a36Sopenharmony_ci PINCTRL_PIN(137, "GPIO_137"), 15162306a36Sopenharmony_ci PINCTRL_PIN(138, "GPIO_138"), 15262306a36Sopenharmony_ci PINCTRL_PIN(139, "GPIO_139"), 15362306a36Sopenharmony_ci PINCTRL_PIN(140, "GPIO_140"), 15462306a36Sopenharmony_ci PINCTRL_PIN(141, "GPIO_141"), 15562306a36Sopenharmony_ci PINCTRL_PIN(142, "GPIO_142"), 15662306a36Sopenharmony_ci PINCTRL_PIN(143, "GPIO_143"), 15762306a36Sopenharmony_ci PINCTRL_PIN(144, "GPIO_144"), 15862306a36Sopenharmony_ci PINCTRL_PIN(145, "GPIO_145"), 15962306a36Sopenharmony_ci PINCTRL_PIN(146, "GPIO_146"), 16062306a36Sopenharmony_ci PINCTRL_PIN(147, "GPIO_147"), 16162306a36Sopenharmony_ci PINCTRL_PIN(148, "GPIO_148"), 16262306a36Sopenharmony_ci PINCTRL_PIN(149, "GPIO_149"), 16362306a36Sopenharmony_ci PINCTRL_PIN(150, "GPIO_150"), 16462306a36Sopenharmony_ci PINCTRL_PIN(151, "GPIO_151"), 16562306a36Sopenharmony_ci PINCTRL_PIN(152, "GPIO_152"), 16662306a36Sopenharmony_ci PINCTRL_PIN(153, "GPIO_153"), 16762306a36Sopenharmony_ci PINCTRL_PIN(154, "GPIO_154"), 16862306a36Sopenharmony_ci PINCTRL_PIN(155, "GPIO_155"), 16962306a36Sopenharmony_ci PINCTRL_PIN(156, "GPIO_156"), 17062306a36Sopenharmony_ci PINCTRL_PIN(157, "GPIO_157"), 17162306a36Sopenharmony_ci PINCTRL_PIN(158, "GPIO_158"), 17262306a36Sopenharmony_ci PINCTRL_PIN(159, "GPIO_159"), 17362306a36Sopenharmony_ci PINCTRL_PIN(160, "GPIO_160"), 17462306a36Sopenharmony_ci PINCTRL_PIN(161, "GPIO_161"), 17562306a36Sopenharmony_ci PINCTRL_PIN(162, "GPIO_162"), 17662306a36Sopenharmony_ci PINCTRL_PIN(163, "GPIO_163"), 17762306a36Sopenharmony_ci PINCTRL_PIN(164, "GPIO_164"), 17862306a36Sopenharmony_ci PINCTRL_PIN(165, "GPIO_165"), 17962306a36Sopenharmony_ci PINCTRL_PIN(166, "GPIO_166"), 18062306a36Sopenharmony_ci PINCTRL_PIN(167, "GPIO_167"), 18162306a36Sopenharmony_ci PINCTRL_PIN(168, "GPIO_168"), 18262306a36Sopenharmony_ci PINCTRL_PIN(169, "GPIO_169"), 18362306a36Sopenharmony_ci PINCTRL_PIN(170, "GPIO_170"), 18462306a36Sopenharmony_ci PINCTRL_PIN(171, "GPIO_171"), 18562306a36Sopenharmony_ci PINCTRL_PIN(172, "GPIO_172"), 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci PINCTRL_PIN(173, "SDC4_CLK"), 18862306a36Sopenharmony_ci PINCTRL_PIN(174, "SDC4_CMD"), 18962306a36Sopenharmony_ci PINCTRL_PIN(175, "SDC4_DATA"), 19062306a36Sopenharmony_ci PINCTRL_PIN(176, "SDC3_CLK"), 19162306a36Sopenharmony_ci PINCTRL_PIN(177, "SDC3_CMD"), 19262306a36Sopenharmony_ci PINCTRL_PIN(178, "SDC3_DATA"), 19362306a36Sopenharmony_ci}; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci#define DECLARE_MSM_GPIO_PIN(pin) static const unsigned int gpio##pin##_pins[] = { pin } 19662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(0); 19762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(1); 19862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(2); 19962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(3); 20062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(4); 20162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(5); 20262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(6); 20362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(7); 20462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(8); 20562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(9); 20662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(10); 20762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(11); 20862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(12); 20962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(13); 21062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(14); 21162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(15); 21262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(16); 21362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(17); 21462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(18); 21562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(19); 21662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(20); 21762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(21); 21862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(22); 21962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(23); 22062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(24); 22162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(25); 22262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(26); 22362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(27); 22462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(28); 22562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(29); 22662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(30); 22762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(31); 22862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(32); 22962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(33); 23062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(34); 23162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(35); 23262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(36); 23362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(37); 23462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(38); 23562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(39); 23662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(40); 23762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(41); 23862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(42); 23962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(43); 24062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(44); 24162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(45); 24262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(46); 24362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(47); 24462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(48); 24562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(49); 24662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(50); 24762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(51); 24862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(52); 24962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(53); 25062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(54); 25162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(55); 25262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(56); 25362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(57); 25462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(58); 25562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(59); 25662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(60); 25762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(61); 25862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(62); 25962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(63); 26062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(64); 26162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(65); 26262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(66); 26362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(67); 26462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(68); 26562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(69); 26662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(70); 26762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(71); 26862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(72); 26962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(73); 27062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(74); 27162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(75); 27262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(76); 27362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(77); 27462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(78); 27562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(79); 27662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(80); 27762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(81); 27862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(82); 27962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(83); 28062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(84); 28162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(85); 28262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(86); 28362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(87); 28462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(88); 28562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(89); 28662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(90); 28762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(91); 28862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(92); 28962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(93); 29062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(94); 29162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(95); 29262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(96); 29362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(97); 29462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(98); 29562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(99); 29662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(100); 29762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(101); 29862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(102); 29962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(103); 30062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(104); 30162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(105); 30262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(106); 30362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(107); 30462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(108); 30562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(109); 30662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(110); 30762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(111); 30862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(112); 30962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(113); 31062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(114); 31162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(115); 31262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(116); 31362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(117); 31462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(118); 31562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(119); 31662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(120); 31762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(121); 31862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(122); 31962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(123); 32062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(124); 32162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(125); 32262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(126); 32362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(127); 32462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(128); 32562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(129); 32662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(130); 32762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(131); 32862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(132); 32962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(133); 33062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(134); 33162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(135); 33262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(136); 33362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(137); 33462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(138); 33562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(139); 33662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(140); 33762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(141); 33862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(142); 33962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(143); 34062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(144); 34162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(145); 34262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(146); 34362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(147); 34462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(148); 34562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(149); 34662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(150); 34762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(151); 34862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(152); 34962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(153); 35062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(154); 35162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(155); 35262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(156); 35362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(157); 35462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(158); 35562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(159); 35662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(160); 35762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(161); 35862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(162); 35962306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(163); 36062306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(164); 36162306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(165); 36262306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(166); 36362306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(167); 36462306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(168); 36562306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(169); 36662306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(170); 36762306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(171); 36862306a36Sopenharmony_ciDECLARE_MSM_GPIO_PIN(172); 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_cistatic const unsigned int sdc4_clk_pins[] = { 173 }; 37162306a36Sopenharmony_cistatic const unsigned int sdc4_cmd_pins[] = { 174 }; 37262306a36Sopenharmony_cistatic const unsigned int sdc4_data_pins[] = { 175 }; 37362306a36Sopenharmony_cistatic const unsigned int sdc3_clk_pins[] = { 176 }; 37462306a36Sopenharmony_cistatic const unsigned int sdc3_cmd_pins[] = { 177 }; 37562306a36Sopenharmony_cistatic const unsigned int sdc3_data_pins[] = { 178 }; 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_ci#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7) \ 37862306a36Sopenharmony_ci { \ 37962306a36Sopenharmony_ci .grp = PINCTRL_PINGROUP("gpio" #id, \ 38062306a36Sopenharmony_ci gpio##id##_pins, \ 38162306a36Sopenharmony_ci ARRAY_SIZE(gpio##id##_pins)), \ 38262306a36Sopenharmony_ci .funcs = (int[]){ \ 38362306a36Sopenharmony_ci msm_mux_gpio, \ 38462306a36Sopenharmony_ci msm_mux_##f1, \ 38562306a36Sopenharmony_ci msm_mux_##f2, \ 38662306a36Sopenharmony_ci msm_mux_##f3, \ 38762306a36Sopenharmony_ci msm_mux_##f4, \ 38862306a36Sopenharmony_ci msm_mux_##f5, \ 38962306a36Sopenharmony_ci msm_mux_##f6, \ 39062306a36Sopenharmony_ci msm_mux_##f7, \ 39162306a36Sopenharmony_ci }, \ 39262306a36Sopenharmony_ci .nfuncs = 8, \ 39362306a36Sopenharmony_ci .ctl_reg = 0x1000 + 0x10 * id, \ 39462306a36Sopenharmony_ci .io_reg = 0x1004 + 0x10 * id, \ 39562306a36Sopenharmony_ci .intr_cfg_reg = 0x1008 + 0x10 * id, \ 39662306a36Sopenharmony_ci .intr_status_reg = 0x100c + 0x10 * id, \ 39762306a36Sopenharmony_ci .intr_target_reg = 0x400 + 0x4 * id, \ 39862306a36Sopenharmony_ci .mux_bit = 2, \ 39962306a36Sopenharmony_ci .pull_bit = 0, \ 40062306a36Sopenharmony_ci .drv_bit = 6, \ 40162306a36Sopenharmony_ci .oe_bit = 9, \ 40262306a36Sopenharmony_ci .in_bit = 0, \ 40362306a36Sopenharmony_ci .out_bit = 1, \ 40462306a36Sopenharmony_ci .intr_enable_bit = 0, \ 40562306a36Sopenharmony_ci .intr_status_bit = 0, \ 40662306a36Sopenharmony_ci .intr_ack_high = 1, \ 40762306a36Sopenharmony_ci .intr_target_bit = 0, \ 40862306a36Sopenharmony_ci .intr_target_kpss_val = 4, \ 40962306a36Sopenharmony_ci .intr_raw_status_bit = 3, \ 41062306a36Sopenharmony_ci .intr_polarity_bit = 1, \ 41162306a36Sopenharmony_ci .intr_detection_bit = 2, \ 41262306a36Sopenharmony_ci .intr_detection_width = 1, \ 41362306a36Sopenharmony_ci } 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci#define SDC_PINGROUP(pg_name, ctl, pull, drv) \ 41662306a36Sopenharmony_ci { \ 41762306a36Sopenharmony_ci .grp = PINCTRL_PINGROUP(#pg_name, \ 41862306a36Sopenharmony_ci pg_name##_pins, \ 41962306a36Sopenharmony_ci ARRAY_SIZE(pg_name##_pins)), \ 42062306a36Sopenharmony_ci .ctl_reg = ctl, \ 42162306a36Sopenharmony_ci .io_reg = 0, \ 42262306a36Sopenharmony_ci .intr_cfg_reg = 0, \ 42362306a36Sopenharmony_ci .intr_status_reg = 0, \ 42462306a36Sopenharmony_ci .intr_target_reg = 0, \ 42562306a36Sopenharmony_ci .mux_bit = -1, \ 42662306a36Sopenharmony_ci .pull_bit = pull, \ 42762306a36Sopenharmony_ci .drv_bit = drv, \ 42862306a36Sopenharmony_ci .oe_bit = -1, \ 42962306a36Sopenharmony_ci .in_bit = -1, \ 43062306a36Sopenharmony_ci .out_bit = -1, \ 43162306a36Sopenharmony_ci .intr_enable_bit = -1, \ 43262306a36Sopenharmony_ci .intr_status_bit = -1, \ 43362306a36Sopenharmony_ci .intr_target_bit = -1, \ 43462306a36Sopenharmony_ci .intr_target_kpss_val = -1, \ 43562306a36Sopenharmony_ci .intr_raw_status_bit = -1, \ 43662306a36Sopenharmony_ci .intr_polarity_bit = -1, \ 43762306a36Sopenharmony_ci .intr_detection_bit = -1, \ 43862306a36Sopenharmony_ci .intr_detection_width = -1, \ 43962306a36Sopenharmony_ci } 44062306a36Sopenharmony_ci 44162306a36Sopenharmony_cienum msm8660_functions { 44262306a36Sopenharmony_ci msm_mux_gpio, 44362306a36Sopenharmony_ci msm_mux_cam_mclk, 44462306a36Sopenharmony_ci msm_mux_dsub, 44562306a36Sopenharmony_ci msm_mux_ext_gps, 44662306a36Sopenharmony_ci msm_mux_gp_clk_0a, 44762306a36Sopenharmony_ci msm_mux_gp_clk_0b, 44862306a36Sopenharmony_ci msm_mux_gp_clk_1a, 44962306a36Sopenharmony_ci msm_mux_gp_clk_1b, 45062306a36Sopenharmony_ci msm_mux_gp_clk_2a, 45162306a36Sopenharmony_ci msm_mux_gp_clk_2b, 45262306a36Sopenharmony_ci msm_mux_gp_mn, 45362306a36Sopenharmony_ci msm_mux_gsbi1, 45462306a36Sopenharmony_ci msm_mux_gsbi1_spi_cs1_n, 45562306a36Sopenharmony_ci msm_mux_gsbi1_spi_cs2a_n, 45662306a36Sopenharmony_ci msm_mux_gsbi1_spi_cs2b_n, 45762306a36Sopenharmony_ci msm_mux_gsbi1_spi_cs3_n, 45862306a36Sopenharmony_ci msm_mux_gsbi2, 45962306a36Sopenharmony_ci msm_mux_gsbi2_spi_cs1_n, 46062306a36Sopenharmony_ci msm_mux_gsbi2_spi_cs2_n, 46162306a36Sopenharmony_ci msm_mux_gsbi2_spi_cs3_n, 46262306a36Sopenharmony_ci msm_mux_gsbi3, 46362306a36Sopenharmony_ci msm_mux_gsbi3_spi_cs1_n, 46462306a36Sopenharmony_ci msm_mux_gsbi3_spi_cs2_n, 46562306a36Sopenharmony_ci msm_mux_gsbi3_spi_cs3_n, 46662306a36Sopenharmony_ci msm_mux_gsbi4, 46762306a36Sopenharmony_ci msm_mux_gsbi5, 46862306a36Sopenharmony_ci msm_mux_gsbi6, 46962306a36Sopenharmony_ci msm_mux_gsbi7, 47062306a36Sopenharmony_ci msm_mux_gsbi8, 47162306a36Sopenharmony_ci msm_mux_gsbi9, 47262306a36Sopenharmony_ci msm_mux_gsbi10, 47362306a36Sopenharmony_ci msm_mux_gsbi11, 47462306a36Sopenharmony_ci msm_mux_gsbi12, 47562306a36Sopenharmony_ci msm_mux_hdmi, 47662306a36Sopenharmony_ci msm_mux_i2s, 47762306a36Sopenharmony_ci msm_mux_lcdc, 47862306a36Sopenharmony_ci msm_mux_mdp_vsync, 47962306a36Sopenharmony_ci msm_mux_mi2s, 48062306a36Sopenharmony_ci msm_mux_pcm, 48162306a36Sopenharmony_ci msm_mux_ps_hold, 48262306a36Sopenharmony_ci msm_mux_sdc1, 48362306a36Sopenharmony_ci msm_mux_sdc2, 48462306a36Sopenharmony_ci msm_mux_sdc5, 48562306a36Sopenharmony_ci msm_mux_tsif1, 48662306a36Sopenharmony_ci msm_mux_tsif2, 48762306a36Sopenharmony_ci msm_mux_usb_fs1, 48862306a36Sopenharmony_ci msm_mux_usb_fs1_oe_n, 48962306a36Sopenharmony_ci msm_mux_usb_fs2, 49062306a36Sopenharmony_ci msm_mux_usb_fs2_oe_n, 49162306a36Sopenharmony_ci msm_mux_vfe, 49262306a36Sopenharmony_ci msm_mux_vsens_alarm, 49362306a36Sopenharmony_ci msm_mux_ebi2cs, 49462306a36Sopenharmony_ci msm_mux_ebi2, 49562306a36Sopenharmony_ci msm_mux__, 49662306a36Sopenharmony_ci}; 49762306a36Sopenharmony_ci 49862306a36Sopenharmony_cistatic const char * const gpio_groups[] = { 49962306a36Sopenharmony_ci "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", 50062306a36Sopenharmony_ci "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", 50162306a36Sopenharmony_ci "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", 50262306a36Sopenharmony_ci "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", 50362306a36Sopenharmony_ci "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", 50462306a36Sopenharmony_ci "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", 50562306a36Sopenharmony_ci "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", 50662306a36Sopenharmony_ci "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", 50762306a36Sopenharmony_ci "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", 50862306a36Sopenharmony_ci "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", 50962306a36Sopenharmony_ci "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", 51062306a36Sopenharmony_ci "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84", 51162306a36Sopenharmony_ci "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91", 51262306a36Sopenharmony_ci "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98", 51362306a36Sopenharmony_ci "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104", 51462306a36Sopenharmony_ci "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110", 51562306a36Sopenharmony_ci "gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116", 51662306a36Sopenharmony_ci "gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122", 51762306a36Sopenharmony_ci "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128", 51862306a36Sopenharmony_ci "gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134", 51962306a36Sopenharmony_ci "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140", 52062306a36Sopenharmony_ci "gpio141", "gpio142", "gpio143", "gpio144", "gpio145", "gpio146", 52162306a36Sopenharmony_ci "gpio147", "gpio148", "gpio149", "gpio150", "gpio151", "gpio152", 52262306a36Sopenharmony_ci "gpio153", "gpio154", "gpio155", "gpio156", "gpio157", "gpio158", 52362306a36Sopenharmony_ci "gpio159", "gpio160", "gpio161", "gpio162", "gpio163", "gpio164", 52462306a36Sopenharmony_ci "gpio165", "gpio166", "gpio167", "gpio168", "gpio169", "gpio170", 52562306a36Sopenharmony_ci "gpio171", "gpio172" 52662306a36Sopenharmony_ci}; 52762306a36Sopenharmony_ci 52862306a36Sopenharmony_cistatic const char * const cam_mclk_groups[] = { 52962306a36Sopenharmony_ci "gpio32" 53062306a36Sopenharmony_ci}; 53162306a36Sopenharmony_cistatic const char * const dsub_groups[] = { 53262306a36Sopenharmony_ci "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", 53362306a36Sopenharmony_ci "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", 53462306a36Sopenharmony_ci "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", 53562306a36Sopenharmony_ci "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27" 53662306a36Sopenharmony_ci}; 53762306a36Sopenharmony_cistatic const char * const ext_gps_groups[] = { 53862306a36Sopenharmony_ci "gpio66", "gpio67", "gpio68", "gpio69" 53962306a36Sopenharmony_ci}; 54062306a36Sopenharmony_cistatic const char * const gp_clk_0a_groups[] = { 54162306a36Sopenharmony_ci "gpio30" 54262306a36Sopenharmony_ci}; 54362306a36Sopenharmony_cistatic const char * const gp_clk_0b_groups[] = { 54462306a36Sopenharmony_ci "gpio115" 54562306a36Sopenharmony_ci}; 54662306a36Sopenharmony_cistatic const char * const gp_clk_1a_groups[] = { 54762306a36Sopenharmony_ci "gpio31" 54862306a36Sopenharmony_ci}; 54962306a36Sopenharmony_cistatic const char * const gp_clk_1b_groups[] = { 55062306a36Sopenharmony_ci "gpio122" 55162306a36Sopenharmony_ci}; 55262306a36Sopenharmony_cistatic const char * const gp_clk_2a_groups[] = { 55362306a36Sopenharmony_ci "gpio103" 55462306a36Sopenharmony_ci}; 55562306a36Sopenharmony_cistatic const char * const gp_clk_2b_groups[] = { 55662306a36Sopenharmony_ci "gpio70" 55762306a36Sopenharmony_ci}; 55862306a36Sopenharmony_cistatic const char * const gp_mn_groups[] = { 55962306a36Sopenharmony_ci "gpio29" 56062306a36Sopenharmony_ci}; 56162306a36Sopenharmony_cistatic const char * const gsbi1_groups[] = { 56262306a36Sopenharmony_ci "gpio33", "gpio34", "gpio35", "gpio36" 56362306a36Sopenharmony_ci}; 56462306a36Sopenharmony_cistatic const char * const gsbi1_spi_cs1_n_groups[] = { 56562306a36Sopenharmony_ci}; 56662306a36Sopenharmony_cistatic const char * const gsbi1_spi_cs2a_n_groups[] = { 56762306a36Sopenharmony_ci}; 56862306a36Sopenharmony_cistatic const char * const gsbi1_spi_cs2b_n_groups[] = { 56962306a36Sopenharmony_ci}; 57062306a36Sopenharmony_cistatic const char * const gsbi1_spi_cs3_n_groups[] = { 57162306a36Sopenharmony_ci}; 57262306a36Sopenharmony_cistatic const char * const gsbi2_groups[] = { 57362306a36Sopenharmony_ci "gpio37", "gpio38", "gpio39", "gpio40" 57462306a36Sopenharmony_ci}; 57562306a36Sopenharmony_cistatic const char * const gsbi2_spi_cs1_n_groups[] = { 57662306a36Sopenharmony_ci "gpio123" 57762306a36Sopenharmony_ci}; 57862306a36Sopenharmony_cistatic const char * const gsbi2_spi_cs2_n_groups[] = { 57962306a36Sopenharmony_ci "gpio124" 58062306a36Sopenharmony_ci}; 58162306a36Sopenharmony_cistatic const char * const gsbi2_spi_cs3_n_groups[] = { 58262306a36Sopenharmony_ci "gpio125" 58362306a36Sopenharmony_ci}; 58462306a36Sopenharmony_cistatic const char * const gsbi3_groups[] = { 58562306a36Sopenharmony_ci "gpio41", "gpio42", "gpio43", "gpio44" 58662306a36Sopenharmony_ci}; 58762306a36Sopenharmony_cistatic const char * const gsbi3_spi_cs1_n_groups[] = { 58862306a36Sopenharmony_ci "gpio62" 58962306a36Sopenharmony_ci}; 59062306a36Sopenharmony_cistatic const char * const gsbi3_spi_cs2_n_groups[] = { 59162306a36Sopenharmony_ci "gpio45" 59262306a36Sopenharmony_ci}; 59362306a36Sopenharmony_cistatic const char * const gsbi3_spi_cs3_n_groups[] = { 59462306a36Sopenharmony_ci "gpio46" 59562306a36Sopenharmony_ci}; 59662306a36Sopenharmony_cistatic const char * const gsbi4_groups[] = { 59762306a36Sopenharmony_ci "gpio45", "gpio56", "gpio47", "gpio48" 59862306a36Sopenharmony_ci}; 59962306a36Sopenharmony_cistatic const char * const gsbi5_groups[] = { 60062306a36Sopenharmony_ci "gpio49", "gpio50", "gpio51", "gpio52" 60162306a36Sopenharmony_ci}; 60262306a36Sopenharmony_cistatic const char * const gsbi6_groups[] = { 60362306a36Sopenharmony_ci "gpio53", "gpio54", "gpio55", "gpio56" 60462306a36Sopenharmony_ci}; 60562306a36Sopenharmony_cistatic const char * const gsbi7_groups[] = { 60662306a36Sopenharmony_ci "gpio57", "gpio58", "gpio59", "gpio60" 60762306a36Sopenharmony_ci}; 60862306a36Sopenharmony_cistatic const char * const gsbi8_groups[] = { 60962306a36Sopenharmony_ci "gpio62", "gpio63", "gpio64", "gpio65" 61062306a36Sopenharmony_ci}; 61162306a36Sopenharmony_cistatic const char * const gsbi9_groups[] = { 61262306a36Sopenharmony_ci "gpio66", "gpio67", "gpio68", "gpio69" 61362306a36Sopenharmony_ci}; 61462306a36Sopenharmony_cistatic const char * const gsbi10_groups[] = { 61562306a36Sopenharmony_ci "gpio70", "gpio71", "gpio72", "gpio73" 61662306a36Sopenharmony_ci}; 61762306a36Sopenharmony_cistatic const char * const gsbi11_groups[] = { 61862306a36Sopenharmony_ci "gpio103", "gpio104", "gpio105", "gpio106" 61962306a36Sopenharmony_ci}; 62062306a36Sopenharmony_cistatic const char * const gsbi12_groups[] = { 62162306a36Sopenharmony_ci "gpio115", "gpio116", "gpio117", "gpio118" 62262306a36Sopenharmony_ci}; 62362306a36Sopenharmony_cistatic const char * const hdmi_groups[] = { 62462306a36Sopenharmony_ci "gpio169", "gpio170", "gpio171", "gpio172" 62562306a36Sopenharmony_ci}; 62662306a36Sopenharmony_cistatic const char * const i2s_groups[] = { 62762306a36Sopenharmony_ci "gpio108", "gpio109", "gpio110", "gpio115", "gpio116", "gpio117", 62862306a36Sopenharmony_ci "gpio118", "gpio119", "gpio120", "gpio121", "gpio122" 62962306a36Sopenharmony_ci}; 63062306a36Sopenharmony_cistatic const char * const lcdc_groups[] = { 63162306a36Sopenharmony_ci "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", 63262306a36Sopenharmony_ci "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", 63362306a36Sopenharmony_ci "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", 63462306a36Sopenharmony_ci "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27" 63562306a36Sopenharmony_ci}; 63662306a36Sopenharmony_cistatic const char * const mdp_vsync_groups[] = { 63762306a36Sopenharmony_ci "gpio28", "gpio39", "gpio41" 63862306a36Sopenharmony_ci}; 63962306a36Sopenharmony_cistatic const char * const mi2s_groups[] = { 64062306a36Sopenharmony_ci "gpio101", "gpio102", "gpio103", "gpio104", "gpio105", "gpio106", 64162306a36Sopenharmony_ci "gpio107" 64262306a36Sopenharmony_ci}; 64362306a36Sopenharmony_cistatic const char * const pcm_groups[] = { 64462306a36Sopenharmony_ci "gpio111", "gpio112", "gpio113", "gpio114" 64562306a36Sopenharmony_ci}; 64662306a36Sopenharmony_cistatic const char * const ps_hold_groups[] = { 64762306a36Sopenharmony_ci "gpio92" 64862306a36Sopenharmony_ci}; 64962306a36Sopenharmony_cistatic const char * const sdc1_groups[] = { 65062306a36Sopenharmony_ci "gpio159", "gpio160", "gpio161", "gpio162", "gpio163", "gpio164", 65162306a36Sopenharmony_ci "gpio165", "gpio166", "gpio167", "gpio168" 65262306a36Sopenharmony_ci}; 65362306a36Sopenharmony_cistatic const char * const sdc2_groups[] = { 65462306a36Sopenharmony_ci "gpio143", "gpio144", "gpio145", "gpio146", "gpio147", "gpio148", 65562306a36Sopenharmony_ci "gpio149", "gpio150", "gpio151", "gpio152" 65662306a36Sopenharmony_ci}; 65762306a36Sopenharmony_cistatic const char * const sdc5_groups[] = { 65862306a36Sopenharmony_ci "gpio95", "gpio96", "gpio97", "gpio98", "gpio99", "gpio100" 65962306a36Sopenharmony_ci}; 66062306a36Sopenharmony_cistatic const char * const tsif1_groups[] = { 66162306a36Sopenharmony_ci "gpio93", "gpio94", "gpio95", "gpio96" 66262306a36Sopenharmony_ci}; 66362306a36Sopenharmony_cistatic const char * const tsif2_groups[] = { 66462306a36Sopenharmony_ci "gpio97", "gpio98", "gpio99", "gpio100" 66562306a36Sopenharmony_ci}; 66662306a36Sopenharmony_cistatic const char * const usb_fs1_groups[] = { 66762306a36Sopenharmony_ci "gpio49", "gpio50", "gpio51" 66862306a36Sopenharmony_ci}; 66962306a36Sopenharmony_cistatic const char * const usb_fs1_oe_n_groups[] = { 67062306a36Sopenharmony_ci "gpio51" 67162306a36Sopenharmony_ci}; 67262306a36Sopenharmony_cistatic const char * const usb_fs2_groups[] = { 67362306a36Sopenharmony_ci "gpio71", "gpio72", "gpio73" 67462306a36Sopenharmony_ci}; 67562306a36Sopenharmony_cistatic const char * const usb_fs2_oe_n_groups[] = { 67662306a36Sopenharmony_ci "gpio73" 67762306a36Sopenharmony_ci}; 67862306a36Sopenharmony_cistatic const char * const vfe_groups[] = { 67962306a36Sopenharmony_ci "gpio29", "gpio30", "gpio31", "gpio42", "gpio46", "gpio105", "gpio106", 68062306a36Sopenharmony_ci "gpio117" 68162306a36Sopenharmony_ci}; 68262306a36Sopenharmony_cistatic const char * const vsens_alarm_groups[] = { 68362306a36Sopenharmony_ci "gpio127" 68462306a36Sopenharmony_ci}; 68562306a36Sopenharmony_cistatic const char * const ebi2cs_groups[] = { 68662306a36Sopenharmony_ci "gpio39", /* CS1A */ 68762306a36Sopenharmony_ci "gpio40", /* CS2A */ 68862306a36Sopenharmony_ci "gpio123", /* CS1B */ 68962306a36Sopenharmony_ci "gpio124", /* CS2B */ 69062306a36Sopenharmony_ci "gpio131", /* CS5 */ 69162306a36Sopenharmony_ci "gpio132", /* CS4 */ 69262306a36Sopenharmony_ci "gpio133", /* CS3 */ 69362306a36Sopenharmony_ci "gpio134", /* CS0 */ 69462306a36Sopenharmony_ci}; 69562306a36Sopenharmony_cistatic const char * const ebi2_groups[] = { 69662306a36Sopenharmony_ci /* ADDR9 & ADDR8 */ 69762306a36Sopenharmony_ci "gpio37", "gpio38", 69862306a36Sopenharmony_ci /* ADDR7 - ADDR 0 */ 69962306a36Sopenharmony_ci "gpio123", "gpio124", "gpio125", "gpio126", 70062306a36Sopenharmony_ci "gpio127", "gpio128", "gpio129", "gpio130", 70162306a36Sopenharmony_ci /* (muxed address+data) AD15 - AD0 */ 70262306a36Sopenharmony_ci "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", 70362306a36Sopenharmony_ci "gpio140", "gpio141", "gpio142", "gpio143", "gpio144", 70462306a36Sopenharmony_ci "gpio145", "gpio146", "gpio147", "gpio148", "gpio149", 70562306a36Sopenharmony_ci "gpio150", 70662306a36Sopenharmony_ci "gpio151", /* OE output enable */ 70762306a36Sopenharmony_ci "gpio152", /* clock */ 70862306a36Sopenharmony_ci "gpio153", /* ADV */ 70962306a36Sopenharmony_ci "gpio154", /* WAIT (input) */ 71062306a36Sopenharmony_ci "gpio155", /* UB Upper Byte Enable */ 71162306a36Sopenharmony_ci "gpio156", /* LB Lower Byte Enable */ 71262306a36Sopenharmony_ci "gpio157", /* WE Write Enable */ 71362306a36Sopenharmony_ci "gpio158", /* busy */ 71462306a36Sopenharmony_ci}; 71562306a36Sopenharmony_ci 71662306a36Sopenharmony_cistatic const struct pinfunction msm8660_functions[] = { 71762306a36Sopenharmony_ci MSM_PIN_FUNCTION(gpio), 71862306a36Sopenharmony_ci MSM_PIN_FUNCTION(cam_mclk), 71962306a36Sopenharmony_ci MSM_PIN_FUNCTION(dsub), 72062306a36Sopenharmony_ci MSM_PIN_FUNCTION(ext_gps), 72162306a36Sopenharmony_ci MSM_PIN_FUNCTION(gp_clk_0a), 72262306a36Sopenharmony_ci MSM_PIN_FUNCTION(gp_clk_0b), 72362306a36Sopenharmony_ci MSM_PIN_FUNCTION(gp_clk_1a), 72462306a36Sopenharmony_ci MSM_PIN_FUNCTION(gp_clk_1b), 72562306a36Sopenharmony_ci MSM_PIN_FUNCTION(gp_clk_2a), 72662306a36Sopenharmony_ci MSM_PIN_FUNCTION(gp_clk_2b), 72762306a36Sopenharmony_ci MSM_PIN_FUNCTION(gp_mn), 72862306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi1), 72962306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi1_spi_cs1_n), 73062306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi1_spi_cs2a_n), 73162306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi1_spi_cs2b_n), 73262306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi1_spi_cs3_n), 73362306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi2), 73462306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi2_spi_cs1_n), 73562306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi2_spi_cs2_n), 73662306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi2_spi_cs3_n), 73762306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi3), 73862306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi3_spi_cs1_n), 73962306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi3_spi_cs2_n), 74062306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi3_spi_cs3_n), 74162306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi4), 74262306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi5), 74362306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi6), 74462306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi7), 74562306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi8), 74662306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi9), 74762306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi10), 74862306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi11), 74962306a36Sopenharmony_ci MSM_PIN_FUNCTION(gsbi12), 75062306a36Sopenharmony_ci MSM_PIN_FUNCTION(hdmi), 75162306a36Sopenharmony_ci MSM_PIN_FUNCTION(i2s), 75262306a36Sopenharmony_ci MSM_PIN_FUNCTION(lcdc), 75362306a36Sopenharmony_ci MSM_PIN_FUNCTION(mdp_vsync), 75462306a36Sopenharmony_ci MSM_PIN_FUNCTION(mi2s), 75562306a36Sopenharmony_ci MSM_PIN_FUNCTION(pcm), 75662306a36Sopenharmony_ci MSM_PIN_FUNCTION(ps_hold), 75762306a36Sopenharmony_ci MSM_PIN_FUNCTION(sdc1), 75862306a36Sopenharmony_ci MSM_PIN_FUNCTION(sdc2), 75962306a36Sopenharmony_ci MSM_PIN_FUNCTION(sdc5), 76062306a36Sopenharmony_ci MSM_PIN_FUNCTION(tsif1), 76162306a36Sopenharmony_ci MSM_PIN_FUNCTION(tsif2), 76262306a36Sopenharmony_ci MSM_PIN_FUNCTION(usb_fs1), 76362306a36Sopenharmony_ci MSM_PIN_FUNCTION(usb_fs1_oe_n), 76462306a36Sopenharmony_ci MSM_PIN_FUNCTION(usb_fs2), 76562306a36Sopenharmony_ci MSM_PIN_FUNCTION(usb_fs2_oe_n), 76662306a36Sopenharmony_ci MSM_PIN_FUNCTION(vfe), 76762306a36Sopenharmony_ci MSM_PIN_FUNCTION(vsens_alarm), 76862306a36Sopenharmony_ci MSM_PIN_FUNCTION(ebi2cs), /* for EBI2 chip selects */ 76962306a36Sopenharmony_ci MSM_PIN_FUNCTION(ebi2), /* for general EBI2 pins */ 77062306a36Sopenharmony_ci}; 77162306a36Sopenharmony_ci 77262306a36Sopenharmony_cistatic const struct msm_pingroup msm8660_groups[] = { 77362306a36Sopenharmony_ci PINGROUP(0, lcdc, dsub, _, _, _, _, _), 77462306a36Sopenharmony_ci PINGROUP(1, lcdc, dsub, _, _, _, _, _), 77562306a36Sopenharmony_ci PINGROUP(2, lcdc, dsub, _, _, _, _, _), 77662306a36Sopenharmony_ci PINGROUP(3, lcdc, dsub, _, _, _, _, _), 77762306a36Sopenharmony_ci PINGROUP(4, lcdc, dsub, _, _, _, _, _), 77862306a36Sopenharmony_ci PINGROUP(5, lcdc, dsub, _, _, _, _, _), 77962306a36Sopenharmony_ci PINGROUP(6, lcdc, dsub, _, _, _, _, _), 78062306a36Sopenharmony_ci PINGROUP(7, lcdc, dsub, _, _, _, _, _), 78162306a36Sopenharmony_ci PINGROUP(8, lcdc, dsub, _, _, _, _, _), 78262306a36Sopenharmony_ci PINGROUP(9, lcdc, dsub, _, _, _, _, _), 78362306a36Sopenharmony_ci PINGROUP(10, lcdc, dsub, _, _, _, _, _), 78462306a36Sopenharmony_ci PINGROUP(11, lcdc, dsub, _, _, _, _, _), 78562306a36Sopenharmony_ci PINGROUP(12, lcdc, dsub, _, _, _, _, _), 78662306a36Sopenharmony_ci PINGROUP(13, lcdc, dsub, _, _, _, _, _), 78762306a36Sopenharmony_ci PINGROUP(14, lcdc, dsub, _, _, _, _, _), 78862306a36Sopenharmony_ci PINGROUP(15, lcdc, dsub, _, _, _, _, _), 78962306a36Sopenharmony_ci PINGROUP(16, lcdc, dsub, _, _, _, _, _), 79062306a36Sopenharmony_ci PINGROUP(17, lcdc, dsub, _, _, _, _, _), 79162306a36Sopenharmony_ci PINGROUP(18, lcdc, dsub, _, _, _, _, _), 79262306a36Sopenharmony_ci PINGROUP(19, lcdc, dsub, _, _, _, _, _), 79362306a36Sopenharmony_ci PINGROUP(20, lcdc, dsub, _, _, _, _, _), 79462306a36Sopenharmony_ci PINGROUP(21, lcdc, dsub, _, _, _, _, _), 79562306a36Sopenharmony_ci PINGROUP(22, lcdc, dsub, _, _, _, _, _), 79662306a36Sopenharmony_ci PINGROUP(23, lcdc, dsub, _, _, _, _, _), 79762306a36Sopenharmony_ci PINGROUP(24, lcdc, dsub, _, _, _, _, _), 79862306a36Sopenharmony_ci PINGROUP(25, lcdc, dsub, _, _, _, _, _), 79962306a36Sopenharmony_ci PINGROUP(26, lcdc, dsub, _, _, _, _, _), 80062306a36Sopenharmony_ci PINGROUP(27, lcdc, dsub, _, _, _, _, _), 80162306a36Sopenharmony_ci PINGROUP(28, mdp_vsync, _, _, _, _, _, _), 80262306a36Sopenharmony_ci PINGROUP(29, vfe, gp_mn, _, _, _, _, _), 80362306a36Sopenharmony_ci PINGROUP(30, vfe, gp_clk_0a, _, _, _, _, _), 80462306a36Sopenharmony_ci PINGROUP(31, vfe, gp_clk_1a, _, _, _, _, _), 80562306a36Sopenharmony_ci PINGROUP(32, cam_mclk, _, _, _, _, _, _), 80662306a36Sopenharmony_ci PINGROUP(33, gsbi1, _, _, _, _, _, _), 80762306a36Sopenharmony_ci PINGROUP(34, gsbi1, _, _, _, _, _, _), 80862306a36Sopenharmony_ci PINGROUP(35, gsbi1, _, _, _, _, _, _), 80962306a36Sopenharmony_ci PINGROUP(36, gsbi1, _, _, _, _, _, _), 81062306a36Sopenharmony_ci PINGROUP(37, gsbi2, ebi2, _, _, _, _, _), 81162306a36Sopenharmony_ci PINGROUP(38, gsbi2, ebi2, _, _, _, _, _), 81262306a36Sopenharmony_ci PINGROUP(39, gsbi2, ebi2cs, mdp_vsync, _, _, _, _), 81362306a36Sopenharmony_ci PINGROUP(40, gsbi2, ebi2cs, _, _, _, _, _), 81462306a36Sopenharmony_ci PINGROUP(41, gsbi3, mdp_vsync, _, _, _, _, _), 81562306a36Sopenharmony_ci PINGROUP(42, gsbi3, vfe, _, _, _, _, _), 81662306a36Sopenharmony_ci PINGROUP(43, gsbi3, _, _, _, _, _, _), 81762306a36Sopenharmony_ci PINGROUP(44, gsbi3, _, _, _, _, _, _), 81862306a36Sopenharmony_ci PINGROUP(45, gsbi4, gsbi3_spi_cs2_n, _, _, _, _, _), 81962306a36Sopenharmony_ci PINGROUP(46, gsbi4, gsbi3_spi_cs3_n, vfe, _, _, _, _), 82062306a36Sopenharmony_ci PINGROUP(47, gsbi4, _, _, _, _, _, _), 82162306a36Sopenharmony_ci PINGROUP(48, gsbi4, _, _, _, _, _, _), 82262306a36Sopenharmony_ci PINGROUP(49, gsbi5, usb_fs1, _, _, _, _, _), 82362306a36Sopenharmony_ci PINGROUP(50, gsbi5, usb_fs1, _, _, _, _, _), 82462306a36Sopenharmony_ci PINGROUP(51, gsbi5, usb_fs1, usb_fs1_oe_n, _, _, _, _), 82562306a36Sopenharmony_ci PINGROUP(52, gsbi5, _, _, _, _, _, _), 82662306a36Sopenharmony_ci PINGROUP(53, gsbi6, _, _, _, _, _, _), 82762306a36Sopenharmony_ci PINGROUP(54, gsbi6, _, _, _, _, _, _), 82862306a36Sopenharmony_ci PINGROUP(55, gsbi6, _, _, _, _, _, _), 82962306a36Sopenharmony_ci PINGROUP(56, gsbi6, _, _, _, _, _, _), 83062306a36Sopenharmony_ci PINGROUP(57, gsbi7, _, _, _, _, _, _), 83162306a36Sopenharmony_ci PINGROUP(58, gsbi7, _, _, _, _, _, _), 83262306a36Sopenharmony_ci PINGROUP(59, gsbi7, _, _, _, _, _, _), 83362306a36Sopenharmony_ci PINGROUP(60, gsbi7, _, _, _, _, _, _), 83462306a36Sopenharmony_ci PINGROUP(61, _, _, _, _, _, _, _), 83562306a36Sopenharmony_ci PINGROUP(62, gsbi8, gsbi3_spi_cs1_n, gsbi1_spi_cs2a_n, _, _, _, _), 83662306a36Sopenharmony_ci PINGROUP(63, gsbi8, gsbi1_spi_cs1_n, _, _, _, _, _), 83762306a36Sopenharmony_ci PINGROUP(64, gsbi8, gsbi1_spi_cs2b_n, _, _, _, _, _), 83862306a36Sopenharmony_ci PINGROUP(65, gsbi8, gsbi1_spi_cs3_n, _, _, _, _, _), 83962306a36Sopenharmony_ci PINGROUP(66, gsbi9, ext_gps, _, _, _, _, _), 84062306a36Sopenharmony_ci PINGROUP(67, gsbi9, ext_gps, _, _, _, _, _), 84162306a36Sopenharmony_ci PINGROUP(68, gsbi9, ext_gps, _, _, _, _, _), 84262306a36Sopenharmony_ci PINGROUP(69, gsbi9, ext_gps, _, _, _, _, _), 84362306a36Sopenharmony_ci PINGROUP(70, gsbi10, gp_clk_2b, _, _, _, _, _), 84462306a36Sopenharmony_ci PINGROUP(71, gsbi10, usb_fs2, _, _, _, _, _), 84562306a36Sopenharmony_ci PINGROUP(72, gsbi10, usb_fs2, _, _, _, _, _), 84662306a36Sopenharmony_ci PINGROUP(73, gsbi10, usb_fs2, usb_fs2_oe_n, _, _, _, _), 84762306a36Sopenharmony_ci PINGROUP(74, _, _, _, _, _, _, _), 84862306a36Sopenharmony_ci PINGROUP(75, _, _, _, _, _, _, _), 84962306a36Sopenharmony_ci PINGROUP(76, _, _, _, _, _, _, _), 85062306a36Sopenharmony_ci PINGROUP(77, _, _, _, _, _, _, _), 85162306a36Sopenharmony_ci PINGROUP(78, _, _, _, _, _, _, _), 85262306a36Sopenharmony_ci PINGROUP(79, _, _, _, _, _, _, _), 85362306a36Sopenharmony_ci PINGROUP(80, _, _, _, _, _, _, _), 85462306a36Sopenharmony_ci PINGROUP(81, _, _, _, _, _, _, _), 85562306a36Sopenharmony_ci PINGROUP(82, _, _, _, _, _, _, _), 85662306a36Sopenharmony_ci PINGROUP(83, _, _, _, _, _, _, _), 85762306a36Sopenharmony_ci PINGROUP(84, _, _, _, _, _, _, _), 85862306a36Sopenharmony_ci PINGROUP(85, _, _, _, _, _, _, _), 85962306a36Sopenharmony_ci PINGROUP(86, _, _, _, _, _, _, _), 86062306a36Sopenharmony_ci PINGROUP(87, _, _, _, _, _, _, _), 86162306a36Sopenharmony_ci PINGROUP(88, _, _, _, _, _, _, _), 86262306a36Sopenharmony_ci PINGROUP(89, _, _, _, _, _, _, _), 86362306a36Sopenharmony_ci PINGROUP(90, _, _, _, _, _, _, _), 86462306a36Sopenharmony_ci PINGROUP(91, _, _, _, _, _, _, _), 86562306a36Sopenharmony_ci PINGROUP(92, ps_hold, _, _, _, _, _, _), 86662306a36Sopenharmony_ci PINGROUP(93, tsif1, _, _, _, _, _, _), 86762306a36Sopenharmony_ci PINGROUP(94, tsif1, _, _, _, _, _, _), 86862306a36Sopenharmony_ci PINGROUP(95, tsif1, sdc5, _, _, _, _, _), 86962306a36Sopenharmony_ci PINGROUP(96, tsif1, sdc5, _, _, _, _, _), 87062306a36Sopenharmony_ci PINGROUP(97, tsif2, sdc5, _, _, _, _, _), 87162306a36Sopenharmony_ci PINGROUP(98, tsif2, sdc5, _, _, _, _, _), 87262306a36Sopenharmony_ci PINGROUP(99, tsif2, sdc5, _, _, _, _, _), 87362306a36Sopenharmony_ci PINGROUP(100, tsif2, sdc5, _, _, _, _, _), 87462306a36Sopenharmony_ci PINGROUP(101, mi2s, _, _, _, _, _, _), 87562306a36Sopenharmony_ci PINGROUP(102, mi2s, _, _, _, _, _, _), 87662306a36Sopenharmony_ci PINGROUP(103, mi2s, gsbi11, gp_clk_2a, _, _, _, _), 87762306a36Sopenharmony_ci PINGROUP(104, mi2s, gsbi11, _, _, _, _, _), 87862306a36Sopenharmony_ci PINGROUP(105, mi2s, gsbi11, vfe, _, _, _, _), 87962306a36Sopenharmony_ci PINGROUP(106, mi2s, gsbi11, vfe, _, _, _, _), 88062306a36Sopenharmony_ci PINGROUP(107, mi2s, _, _, _, _, _, _), 88162306a36Sopenharmony_ci PINGROUP(108, i2s, _, _, _, _, _, _), 88262306a36Sopenharmony_ci PINGROUP(109, i2s, _, _, _, _, _, _), 88362306a36Sopenharmony_ci PINGROUP(110, i2s, _, _, _, _, _, _), 88462306a36Sopenharmony_ci PINGROUP(111, pcm, _, _, _, _, _, _), 88562306a36Sopenharmony_ci PINGROUP(112, pcm, _, _, _, _, _, _), 88662306a36Sopenharmony_ci PINGROUP(113, pcm, _, _, _, _, _, _), 88762306a36Sopenharmony_ci PINGROUP(114, pcm, _, _, _, _, _, _), 88862306a36Sopenharmony_ci PINGROUP(115, i2s, gsbi12, gp_clk_0b, _, _, _, _), 88962306a36Sopenharmony_ci PINGROUP(116, i2s, gsbi12, _, _, _, _, _), 89062306a36Sopenharmony_ci PINGROUP(117, i2s, gsbi12, vfe, _, _, _, _), 89162306a36Sopenharmony_ci PINGROUP(118, i2s, gsbi12, _, _, _, _, _), 89262306a36Sopenharmony_ci PINGROUP(119, i2s, _, _, _, _, _, _), 89362306a36Sopenharmony_ci PINGROUP(120, i2s, _, _, _, _, _, _), 89462306a36Sopenharmony_ci PINGROUP(121, i2s, _, _, _, _, _, _), 89562306a36Sopenharmony_ci PINGROUP(122, i2s, gp_clk_1b, _, _, _, _, _), 89662306a36Sopenharmony_ci PINGROUP(123, ebi2, gsbi2_spi_cs1_n, ebi2cs, _, _, _, _), 89762306a36Sopenharmony_ci PINGROUP(124, ebi2, gsbi2_spi_cs2_n, ebi2cs, _, _, _, _), 89862306a36Sopenharmony_ci PINGROUP(125, ebi2, gsbi2_spi_cs3_n, _, _, _, _, _), 89962306a36Sopenharmony_ci PINGROUP(126, ebi2, _, _, _, _, _, _), 90062306a36Sopenharmony_ci PINGROUP(127, ebi2, vsens_alarm, _, _, _, _, _), 90162306a36Sopenharmony_ci PINGROUP(128, ebi2, _, _, _, _, _, _), 90262306a36Sopenharmony_ci PINGROUP(129, ebi2, _, _, _, _, _, _), 90362306a36Sopenharmony_ci PINGROUP(130, ebi2, _, _, _, _, _, _), 90462306a36Sopenharmony_ci PINGROUP(131, ebi2cs, _, _, _, _, _, _), 90562306a36Sopenharmony_ci PINGROUP(132, ebi2cs, _, _, _, _, _, _), 90662306a36Sopenharmony_ci PINGROUP(133, ebi2cs, _, _, _, _, _, _), 90762306a36Sopenharmony_ci PINGROUP(134, ebi2cs, _, _, _, _, _, _), 90862306a36Sopenharmony_ci PINGROUP(135, ebi2, _, _, _, _, _, _), 90962306a36Sopenharmony_ci PINGROUP(136, ebi2, _, _, _, _, _, _), 91062306a36Sopenharmony_ci PINGROUP(137, ebi2, _, _, _, _, _, _), 91162306a36Sopenharmony_ci PINGROUP(138, ebi2, _, _, _, _, _, _), 91262306a36Sopenharmony_ci PINGROUP(139, ebi2, _, _, _, _, _, _), 91362306a36Sopenharmony_ci PINGROUP(140, ebi2, _, _, _, _, _, _), 91462306a36Sopenharmony_ci PINGROUP(141, ebi2, _, _, _, _, _, _), 91562306a36Sopenharmony_ci PINGROUP(142, ebi2, _, _, _, _, _, _), 91662306a36Sopenharmony_ci PINGROUP(143, ebi2, sdc2, _, _, _, _, _), 91762306a36Sopenharmony_ci PINGROUP(144, ebi2, sdc2, _, _, _, _, _), 91862306a36Sopenharmony_ci PINGROUP(145, ebi2, sdc2, _, _, _, _, _), 91962306a36Sopenharmony_ci PINGROUP(146, ebi2, sdc2, _, _, _, _, _), 92062306a36Sopenharmony_ci PINGROUP(147, ebi2, sdc2, _, _, _, _, _), 92162306a36Sopenharmony_ci PINGROUP(148, ebi2, sdc2, _, _, _, _, _), 92262306a36Sopenharmony_ci PINGROUP(149, ebi2, sdc2, _, _, _, _, _), 92362306a36Sopenharmony_ci PINGROUP(150, ebi2, sdc2, _, _, _, _, _), 92462306a36Sopenharmony_ci PINGROUP(151, ebi2, sdc2, _, _, _, _, _), 92562306a36Sopenharmony_ci PINGROUP(152, ebi2, sdc2, _, _, _, _, _), 92662306a36Sopenharmony_ci PINGROUP(153, ebi2, _, _, _, _, _, _), 92762306a36Sopenharmony_ci PINGROUP(154, ebi2, _, _, _, _, _, _), 92862306a36Sopenharmony_ci PINGROUP(155, ebi2, _, _, _, _, _, _), 92962306a36Sopenharmony_ci PINGROUP(156, ebi2, _, _, _, _, _, _), 93062306a36Sopenharmony_ci PINGROUP(157, ebi2, _, _, _, _, _, _), 93162306a36Sopenharmony_ci PINGROUP(158, ebi2, _, _, _, _, _, _), 93262306a36Sopenharmony_ci PINGROUP(159, sdc1, _, _, _, _, _, _), 93362306a36Sopenharmony_ci PINGROUP(160, sdc1, _, _, _, _, _, _), 93462306a36Sopenharmony_ci PINGROUP(161, sdc1, _, _, _, _, _, _), 93562306a36Sopenharmony_ci PINGROUP(162, sdc1, _, _, _, _, _, _), 93662306a36Sopenharmony_ci PINGROUP(163, sdc1, _, _, _, _, _, _), 93762306a36Sopenharmony_ci PINGROUP(164, sdc1, _, _, _, _, _, _), 93862306a36Sopenharmony_ci PINGROUP(165, sdc1, _, _, _, _, _, _), 93962306a36Sopenharmony_ci PINGROUP(166, sdc1, _, _, _, _, _, _), 94062306a36Sopenharmony_ci PINGROUP(167, sdc1, _, _, _, _, _, _), 94162306a36Sopenharmony_ci PINGROUP(168, sdc1, _, _, _, _, _, _), 94262306a36Sopenharmony_ci PINGROUP(169, hdmi, _, _, _, _, _, _), 94362306a36Sopenharmony_ci PINGROUP(170, hdmi, _, _, _, _, _, _), 94462306a36Sopenharmony_ci PINGROUP(171, hdmi, _, _, _, _, _, _), 94562306a36Sopenharmony_ci PINGROUP(172, hdmi, _, _, _, _, _, _), 94662306a36Sopenharmony_ci 94762306a36Sopenharmony_ci SDC_PINGROUP(sdc4_clk, 0x20a0, -1, 6), 94862306a36Sopenharmony_ci SDC_PINGROUP(sdc4_cmd, 0x20a0, 11, 3), 94962306a36Sopenharmony_ci SDC_PINGROUP(sdc4_data, 0x20a0, 9, 0), 95062306a36Sopenharmony_ci 95162306a36Sopenharmony_ci SDC_PINGROUP(sdc3_clk, 0x20a4, -1, 6), 95262306a36Sopenharmony_ci SDC_PINGROUP(sdc3_cmd, 0x20a4, 11, 3), 95362306a36Sopenharmony_ci SDC_PINGROUP(sdc3_data, 0x20a4, 9, 0), 95462306a36Sopenharmony_ci}; 95562306a36Sopenharmony_ci 95662306a36Sopenharmony_ci#define NUM_GPIO_PINGROUPS 173 95762306a36Sopenharmony_ci 95862306a36Sopenharmony_cistatic const struct msm_pinctrl_soc_data msm8660_pinctrl = { 95962306a36Sopenharmony_ci .pins = msm8660_pins, 96062306a36Sopenharmony_ci .npins = ARRAY_SIZE(msm8660_pins), 96162306a36Sopenharmony_ci .functions = msm8660_functions, 96262306a36Sopenharmony_ci .nfunctions = ARRAY_SIZE(msm8660_functions), 96362306a36Sopenharmony_ci .groups = msm8660_groups, 96462306a36Sopenharmony_ci .ngroups = ARRAY_SIZE(msm8660_groups), 96562306a36Sopenharmony_ci .ngpios = NUM_GPIO_PINGROUPS, 96662306a36Sopenharmony_ci}; 96762306a36Sopenharmony_ci 96862306a36Sopenharmony_cistatic int msm8660_pinctrl_probe(struct platform_device *pdev) 96962306a36Sopenharmony_ci{ 97062306a36Sopenharmony_ci return msm_pinctrl_probe(pdev, &msm8660_pinctrl); 97162306a36Sopenharmony_ci} 97262306a36Sopenharmony_ci 97362306a36Sopenharmony_cistatic const struct of_device_id msm8660_pinctrl_of_match[] = { 97462306a36Sopenharmony_ci { .compatible = "qcom,msm8660-pinctrl", }, 97562306a36Sopenharmony_ci { }, 97662306a36Sopenharmony_ci}; 97762306a36Sopenharmony_ci 97862306a36Sopenharmony_cistatic struct platform_driver msm8660_pinctrl_driver = { 97962306a36Sopenharmony_ci .driver = { 98062306a36Sopenharmony_ci .name = "msm8660-pinctrl", 98162306a36Sopenharmony_ci .of_match_table = msm8660_pinctrl_of_match, 98262306a36Sopenharmony_ci }, 98362306a36Sopenharmony_ci .probe = msm8660_pinctrl_probe, 98462306a36Sopenharmony_ci .remove = msm_pinctrl_remove, 98562306a36Sopenharmony_ci}; 98662306a36Sopenharmony_ci 98762306a36Sopenharmony_cistatic int __init msm8660_pinctrl_init(void) 98862306a36Sopenharmony_ci{ 98962306a36Sopenharmony_ci return platform_driver_register(&msm8660_pinctrl_driver); 99062306a36Sopenharmony_ci} 99162306a36Sopenharmony_ciarch_initcall(msm8660_pinctrl_init); 99262306a36Sopenharmony_ci 99362306a36Sopenharmony_cistatic void __exit msm8660_pinctrl_exit(void) 99462306a36Sopenharmony_ci{ 99562306a36Sopenharmony_ci platform_driver_unregister(&msm8660_pinctrl_driver); 99662306a36Sopenharmony_ci} 99762306a36Sopenharmony_cimodule_exit(msm8660_pinctrl_exit); 99862306a36Sopenharmony_ci 99962306a36Sopenharmony_ciMODULE_AUTHOR("Bjorn Andersson <bjorn.andersson@sonymobile.com>"); 100062306a36Sopenharmony_ciMODULE_DESCRIPTION("Qualcomm MSM8660 pinctrl driver"); 100162306a36Sopenharmony_ciMODULE_LICENSE("GPL v2"); 100262306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, msm8660_pinctrl_of_match); 1003