diff --git a/drivers/irqchip/qcom/Makefile b/drivers/irqchip/qcom/Makefile index c6cf4bb89a14..7bc1b625b9a1 100644 --- a/drivers/irqchip/qcom/Makefile +++ b/drivers/irqchip/qcom/Makefile @@ -5,5 +5,5 @@ obj-$(CONFIG_QTI_PDC_SDMMAGPIE) += pdc-sdmmagpie.o obj-$(CONFIG_QTI_PDC_SDXPRAIRIE) += pdc-sdxprairie.o obj-$(CONFIG_QTI_PDC_ATOLL) += pdc-atoll.o obj-$(CONFIG_QTI_MPM) += mpm.o mpm-8937.o mpm-qcs405.o mpm-trinket.o \ - mpm-9607.o mpm-sdm660.o -obj-$(CONFIG_QTI_PDC_VIRT) += pdc-virt.o \ No newline at end of file + mpm-9607.o mpm-sdm660.o mpm-sdm429.o +obj-$(CONFIG_QTI_PDC_VIRT) += pdc-virt.o diff --git a/drivers/irqchip/qcom/mpm-sdm429.c b/drivers/irqchip/qcom/mpm-sdm429.c new file mode 100644 index 000000000000..92023bb2f440 --- /dev/null +++ b/drivers/irqchip/qcom/mpm-sdm429.c @@ -0,0 +1,74 @@ +/* Copyright (c) 2020, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "mpm.h" + +const struct mpm_pin mpm_sdm429_gic_chip_data[] = { + {2, 216}, + {49, 172}, + {53, 104}, + {58, 166}, + {62, 222}, + {-1}, +}; + +const struct mpm_pin mpm_sdm429_gpio_chip_data[] = { + {3, 38}, + {4, 1}, + {5, 5}, + {6, 9}, + {8, 37}, + {9, 36}, + {10, 13}, + {11, 35}, + {12, 17}, + {13, 21}, + {14, 54}, + {15, 34}, + {16, 31}, + {17, 58}, + {18, 28}, + {19, 42}, + {20, 25}, + {21, 12}, + {22, 43}, + {23, 44}, + {24, 45}, + {25, 46}, + {26, 48}, + {27, 65}, + {28, 93}, + {29, 97}, + {30, 63}, + {31, 70}, + {32, 71}, + {33, 72}, + {34, 81}, + {35, 126}, + {36, 90}, + {37, 128}, + {38, 91}, + {39, 41}, + {40, 127}, + {41, 86}, + {50, 67}, + {51, 73}, + {52, 74}, + {53, 62}, + {54, 124}, + {55, 61}, + {56, 130}, + {57, 59}, + {59, 50}, + {-1}, +}; diff --git a/drivers/irqchip/qcom/mpm.c b/drivers/irqchip/qcom/mpm.c index 049360aab1df..a517c3f40622 100644 --- a/drivers/irqchip/qcom/mpm.c +++ b/drivers/irqchip/qcom/mpm.c @@ -622,6 +622,10 @@ static const struct of_device_id mpm_gic_chip_data_table[] = { .compatible = "qcom,mpm-gic-sdm660", .data = mpm_sdm660_gic_chip_data, }, + { + .compatible = "qcom,mpm-gic-sdm429", + .data = mpm_sdm429_gic_chip_data, + }, {} }; MODULE_DEVICE_TABLE(of, mpm_gic_chip_data_table); @@ -647,6 +651,10 @@ static const struct of_device_id mpm_gpio_chip_data_table[] = { .compatible = "qcom,mpm-gpio-sdm660", .data = mpm_sdm660_gpio_chip_data, }, + { + .compatible = "qcom,mpm-gpio-sdm429", + .data = mpm_sdm429_gpio_chip_data, + }, {} }; diff --git a/drivers/irqchip/qcom/mpm.h b/drivers/irqchip/qcom/mpm.h index b8bba574935a..89a617547a39 100644 --- a/drivers/irqchip/qcom/mpm.h +++ b/drivers/irqchip/qcom/mpm.h @@ -34,4 +34,7 @@ extern const struct mpm_pin mpm_mdm9607_gpio_chip_data[]; extern const struct mpm_pin mpm_sdm660_gic_chip_data[]; extern const struct mpm_pin mpm_sdm660_gpio_chip_data[]; + +extern const struct mpm_pin mpm_sdm429_gic_chip_data[]; +extern const struct mpm_pin mpm_sdm429_gpio_chip_data[]; #endif /* __QCOM_MPM_H__ */