Skip to content

Commit 8434078

Browse files
Gopikrishna Garmidilinusw
authored andcommitted
pinctrl: qcom: glymur: Add Mahua TLMM support
Mahua TLMM block is identical to Glymur, but the PDC wake IRQ map differs since PDC handles the interrupt for GPIO 155 instead of GPIO 143 as seen on Glymur. Hence add the Mahua-specific PDC map to the Glymur TLMM driver. Signed-off-by: Gopikrishna Garmidi <gopikrishna.garmidi@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
1 parent 84a3bc3 commit 8434078

1 file changed

Lines changed: 43 additions & 3 deletions

File tree

drivers/pinctrl/qcom/pinctrl-glymur.c

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
17321752
static 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+
17451778
static 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

17501784
static 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

17551795
static struct platform_driver glymur_tlmm_driver = {

0 commit comments

Comments
 (0)