Merge "pinctrl: qcom: Add TLMM support for Anorak platform"

This commit is contained in:
qctecmdr 2022-02-19 06:46:26 -08:00 committed by Gerrit - the friendly Code Review server
commit dd3071da64
4 changed files with 1992 additions and 0 deletions

View File

@ -61,6 +61,18 @@ config PINCTRL_NEO
Say Y here to compile statically, or M here to compile it as a module.
If unsure, say N.
config PINCTRL_ANORAK
tristate "Qualcomm Technologies Inc ANORAK pin controller driver"
depends on GPIOLIB && OF
select PINCTRL_MSM
help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
Qualcomm Technologies Inc Top Level Mode Multiplexer block (TLMM)
block found on the Qualcomm Technologies Inc ANORAK platforms.
This driver could also be used for a target supporting secondary VM.
Say Y here to compile statically, or M here to compile it as a module.
If unsure, say N.
config PINCTRL_WAIPIO
tristate "Qualcomm Technologies Inc WAIPIO pin controller driver"
depends on GPIOLIB && OF

View File

@ -5,6 +5,7 @@ obj-$(CONFIG_PINCTRL_LAHAINA) += pinctrl-lahaina.o
obj-$(CONFIG_PINCTRL_SHIMA) += pinctrl-shima.o
obj-$(CONFIG_PINCTRL_HOLI) += pinctrl-holi.o
obj-$(CONFIG_PINCTRL_NEO) += pinctrl-neo.o
obj-$(CONFIG_PINCTRL_ANORAK) += pinctrl-anorak.o
obj-$(CONFIG_PINCTRL_WAIPIO) += pinctrl-waipio.o
obj-$(CONFIG_PINCTRL_DIWALI) += pinctrl-diwali.o
obj-$(CONFIG_PINCTRL_CAPE) += pinctrl-cape.o

View File

@ -0,0 +1,59 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pinctrl/pinctrl.h>
#include "pinctrl-msm.h"
#include "pinctrl-anorak.h"
static const struct msm_pinctrl_soc_data anorak_pinctrl = {
.pins = anorak_pins,
.npins = ARRAY_SIZE(anorak_pins),
.functions = anorak_functions,
.nfunctions = ARRAY_SIZE(anorak_functions),
.groups = anorak_groups,
.ngroups = ARRAY_SIZE(anorak_groups),
.ngpios = 225,
.qup_regs = anorak_qup_regs,
.nqup_regs = ARRAY_SIZE(anorak_qup_regs),
};
static int anorak_pinctrl_probe(struct platform_device *pdev)
{
return msm_pinctrl_probe(pdev, &anorak_pinctrl);
}
static const struct of_device_id anorak_pinctrl_of_match[] = {
{ .compatible = "qcom,anorak-pinctrl", },
{ },
};
static struct platform_driver anorak_pinctrl_driver = {
.driver = {
.name = "anorak-pinctrl",
.of_match_table = anorak_pinctrl_of_match,
},
.probe = anorak_pinctrl_probe,
.remove = msm_pinctrl_remove,
};
static int __init anorak_pinctrl_init(void)
{
return platform_driver_register(&anorak_pinctrl_driver);
}
arch_initcall(anorak_pinctrl_init);
static void __exit anorak_pinctrl_exit(void)
{
platform_driver_unregister(&anorak_pinctrl_driver);
}
module_exit(anorak_pinctrl_exit);
MODULE_DESCRIPTION("QTI anorak pinctrl driver");
MODULE_LICENSE("GPL v2");
MODULE_DEVICE_TABLE(of, anorak_pinctrl_of_match);

File diff suppressed because it is too large Load Diff