Re: [PATCH v3 09/15] pinctrl: qcom: Add Kuno pinctrl driver
Abel Vesa <[email protected]>
| Newsgroups | org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm |
|---|---|
| Message-ID | <7ywfd3hfzngejfprv5zkn65kci52q5tgiq5h3sccpz35ov5eq4@ow4edd5epaws> |
On 26-08-21 21:39:02, Hardeep Sharma wrote: > Add the TLMM pinctrl driver for the Qualcomm Kuno platform, supporting > 110 GPIOs and their pin multiplexing, pin configuration and gpiolib > interface through the common pinctrl-msm driver. > > Signed-off-by: Hardeep Sharma <[email protected]> > --- > drivers/pinctrl/qcom/Kconfig.msm | 11 + > drivers/pinctrl/qcom/Makefile | 1 + > drivers/pinctrl/qcom/pinctrl-kuno.c | 801 ++++++++++++++++++++++++++++++++++++ > 3 files changed, 813 insertions(+) > [...] > diff --git a/drivers/pinctrl/qcom/pinctrl-kuno.c b/drivers/pinctrl/qcom/pinctrl-kuno.c > new file mode 100644 > index 000000000000..f3f8ec3e09de > --- /dev/null > +++ b/drivers/pinctrl/qcom/pinctrl-kuno.c > @@ -0,0 +1,801 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. > + */ > + > +#include <linux/module.h> > +#include <linux/of.h> > +#include <linux/platform_device.h> > + > +#include "pinctrl-msm.h" [...] > + > +static const struct pinfunction kuno_functions[] = { > + MSM_GPIO_PIN_FUNCTION(gpio), > + MSM_PIN_FUNCTION(audio_ref_clk), > + MSM_PIN_FUNCTION(coex_uart), > + MSM_PIN_FUNCTION(ebi2_lcd_a), > + MSM_PIN_FUNCTION(ebi2_lcd_cs), > + MSM_PIN_FUNCTION(ebi2_lcd_reset), > + MSM_PIN_FUNCTION(ebi2_lcd_te), > + MSM_PIN_FUNCTION(emac_mdc), > + MSM_PIN_FUNCTION(emac_mdio), > + MSM_PIN_FUNCTION(emac_pps_in), > + MSM_PIN_FUNCTION(emac_ptp_aux), > + MSM_PIN_FUNCTION(emac_ptp_pps), > + MSM_PIN_FUNCTION(gcc_gp1_clk), > + MSM_PIN_FUNCTION(gcc_gp2_clk), > + MSM_PIN_FUNCTION(gcc_gp3_clk), > + MSM_PIN_FUNCTION(mi2s0_data0), > + MSM_PIN_FUNCTION(mi2s0_data1), > + MSM_PIN_FUNCTION(mi2s0_sck), > + MSM_PIN_FUNCTION(mi2s0_ws), > + MSM_PIN_FUNCTION(mi2s1_data0), > + MSM_PIN_FUNCTION(mi2s1_data1), > + MSM_PIN_FUNCTION(mi2s1_sck), > + MSM_PIN_FUNCTION(mi2s1_ws), > + MSM_PIN_FUNCTION(mi2s_mclk), > + MSM_PIN_FUNCTION(nav_gpio), > + MSM_PIN_FUNCTION(pci_e_rst), > + MSM_PIN_FUNCTION(pcie_clkreq_n), > + MSM_PIN_FUNCTION(pll_bist_sync), > + MSM_PIN_FUNCTION(pll_clk_aux), > + MSM_PIN_FUNCTION(qdss_cti_trig0), > + MSM_PIN_FUNCTION(qdss_cti_trig1), > + MSM_PIN_FUNCTION(qdss_cti_trig1_mire), > + MSM_PIN_FUNCTION(qdss_gpio_traceclk), > + MSM_PIN_FUNCTION(qdss_gpio_tracectl), > + MSM_PIN_FUNCTION(qup0_se0), > + MSM_PIN_FUNCTION(qup0_se1), > + MSM_PIN_FUNCTION(qup0_se2), > + MSM_PIN_FUNCTION(qup0_se3_mira), > + MSM_PIN_FUNCTION(qup0_se3_mirb), > + MSM_PIN_FUNCTION(qup0_se4), > + MSM_PIN_FUNCTION(sdc4_clk), > + MSM_PIN_FUNCTION(sdc4_cmd), > + MSM_PIN_FUNCTION(sdc4_data), > + MSM_PIN_FUNCTION(sdc4_tb_trig), > + MSM_PIN_FUNCTION(sgmii_phy_intr), > + MSM_PIN_FUNCTION(spmi_coex_clk), > + MSM_PIN_FUNCTION(spmi_coex_data), > + MSM_PIN_FUNCTION(spmi_vgi_hwevent), > + MSM_PIN_FUNCTION(uim1_clk), > + MSM_PIN_FUNCTION(uim1_data), > + MSM_PIN_FUNCTION(uim1_present), > + MSM_PIN_FUNCTION(uim1_reset), > + MSM_PIN_FUNCTION(usb2phy_ac_en), > +}; > + > +/* Every pin is maintained as a single group, and missing or non-existing pin > + * would be maintained as dummy group to synchronize pin group index with > + * pin descriptor registered with pinctrl core. > + * Clients would not be able to request these dummy pin groups. > + */ > +static const struct msm_pingroup kuno_groups[] = { > + [0] = PINGROUP(0, uim1_data, NA, NA, NA, NA, NA, NA, NA, NA), We use underscores instead of NA here. Please compare to the older SoCs in upstream.