@@ -1729,6 +1729,26 @@ static const struct msm_gpio_wakeirq_map glymur_pdc_map[] = {
17291729 { 232 , 206 }, { 234 , 172 }, { 235 , 173 }, { 242 , 158 }, { 244 , 156 },
17301730};
17311731
1732+ static const struct msm_gpio_wakeirq_map mahua_pdc_map [] = {
1733+ { 0 , 116 }, { 2 , 114 }, { 3 , 115 }, { 4 , 175 }, { 5 , 176 },
1734+ { 7 , 111 }, { 11 , 129 }, { 13 , 130 }, { 15 , 112 }, { 19 , 113 },
1735+ { 23 , 187 }, { 27 , 188 }, { 28 , 121 }, { 29 , 122 }, { 30 , 136 },
1736+ { 31 , 203 }, { 32 , 189 }, { 34 , 174 }, { 35 , 190 }, { 36 , 191 },
1737+ { 39 , 124 }, { 43 , 192 }, { 47 , 193 }, { 51 , 123 }, { 53 , 133 },
1738+ { 55 , 125 }, { 59 , 131 }, { 64 , 134 }, { 65 , 150 }, { 66 , 186 },
1739+ { 67 , 132 }, { 68 , 195 }, { 71 , 135 }, { 75 , 196 }, { 79 , 197 },
1740+ { 83 , 198 }, { 84 , 181 }, { 85 , 199 }, { 87 , 200 }, { 91 , 201 },
1741+ { 92 , 182 }, { 93 , 183 }, { 94 , 184 }, { 95 , 185 }, { 98 , 202 },
1742+ { 105 , 157 }, { 113 , 128 }, { 121 , 117 }, { 123 , 118 }, { 125 , 119 },
1743+ { 129 , 120 }, { 131 , 126 }, { 132 , 160 }, { 133 , 194 }, { 134 , 127 },
1744+ { 141 , 137 }, { 144 , 138 }, { 145 , 139 }, { 147 , 140 }, { 148 , 141 },
1745+ { 150 , 146 }, { 151 , 147 }, { 153 , 148 }, { 154 , 144 }, { 155 , 159 },
1746+ { 156 , 149 }, { 157 , 151 }, { 163 , 142 }, { 172 , 143 }, { 181 , 145 },
1747+ { 193 , 161 }, { 196 , 152 }, { 203 , 177 }, { 208 , 178 }, { 215 , 162 },
1748+ { 217 , 153 }, { 220 , 154 }, { 221 , 155 }, { 228 , 179 }, { 230 , 180 },
1749+ { 232 , 206 }, { 234 , 172 }, { 235 , 173 }, { 242 , 158 }, { 244 , 156 },
1750+ };
1751+
17321752static const struct msm_pinctrl_soc_data glymur_tlmm = {
17331753 .pins = glymur_pins ,
17341754 .npins = ARRAY_SIZE (glymur_pins ),
@@ -1742,14 +1762,34 @@ static const struct msm_pinctrl_soc_data glymur_tlmm = {
17421762 .egpio_func = 11 ,
17431763};
17441764
1765+ static const struct msm_pinctrl_soc_data mahua_tlmm = {
1766+ .pins = glymur_pins ,
1767+ .npins = ARRAY_SIZE (glymur_pins ),
1768+ .functions = glymur_functions ,
1769+ .nfunctions = ARRAY_SIZE (glymur_functions ),
1770+ .groups = glymur_groups ,
1771+ .ngroups = ARRAY_SIZE (glymur_groups ),
1772+ .ngpios = 251 ,
1773+ .wakeirq_map = mahua_pdc_map ,
1774+ .nwakeirq_map = ARRAY_SIZE (mahua_pdc_map ),
1775+ .egpio_func = 11 ,
1776+ };
1777+
17451778static const struct of_device_id glymur_tlmm_of_match [] = {
1746- { .compatible = "qcom,glymur-tlmm" , },
1747- { }
1779+ { .compatible = "qcom,glymur-tlmm" , .data = & glymur_tlmm },
1780+ { .compatible = "qcom,mahua-tlmm" , .data = & mahua_tlmm },
1781+ { },
17481782};
17491783
17501784static int glymur_tlmm_probe (struct platform_device * pdev )
17511785{
1752- return msm_pinctrl_probe (pdev , & glymur_tlmm );
1786+ const struct msm_pinctrl_soc_data * data ;
1787+
1788+ data = of_device_get_match_data (& pdev -> dev );
1789+ if (!data )
1790+ return - ENODEV ;
1791+
1792+ return msm_pinctrl_probe (pdev , data );
17531793}
17541794
17551795static struct platform_driver glymur_tlmm_driver = {
0 commit comments