mbox series

[v7,0/3] SDM670 Pin Control Driver

Message ID 20221004215814.11694-1-mailingradian@gmail.com
Headers show
Series SDM670 Pin Control Driver | expand

Message

Richard Acayan Oct. 4, 2022, 9:58 p.m. UTC
Changes since v6:
 - remove bitmap_fill() call completely (original commit was 4c0efbfb2669
   ("pinctrl: msm: Add ability for drivers to supply a reserved GPIO list"),
   original author CC'd)
 - group some entries in pingroup arrays for less lines
 - accumulate review tags

Changes since v5:
 - remove function requirement in schema
 - change "-state$" regex to double quotes in schema
 - drop quotes from qcom-tlmm-state ref in dt schema

Changes since v4:
 - accumulate review tag
 - use --cover-letter
 - this is effectively a resend

Changes since v3:
 - constrain gpio-reserved-ranges to 1-75 items
 - proper indentation in dt-bindings example (actually tagged this time
   instead of an outdated commit)
 - remove unnecessary commit reference
 - rename complement_fw_reserved_gpios -> complement_fw_gpio_ranges

Changes since v2:
 - remove quotes from pinctrl.yaml# in dt-bindings
 - constrain gpio-reserved-ranges to 1-76 items (includes ufs_reset)
 - indentation in dt-bindings example
 - cite downstream kernel source
 - remove MODULE_AUTHOR (most imported pinctrl drivers don't have this)

Changes since v1:
 - add a field in msm_pinctrl_soc_data to accomodate the needs of the
   driver and device dts
 - apply changes made to existing tlmm dt documentation
 - add reserved gpios array
 - rename device tree compat string to qcom,sdm670-tlmm
 - remove dependency on ACPI
 - move MODULE_DEVICE_TABLE macro call up
 - add missing pins (fixes most of the debugfs problems)
 - move qup0_pins down
 - add whitespace between UFS_RESET macro and pins array

This patch series adds the driver for the Qualcomm Snapdragon 670 TLMM
(Top-Level Mode Multiplexer) and introduces a new field so that SDM670-
related device trees can reserve their own gpios.

Richard Acayan (3):
  dt-bindings: pinctrl: qcom: add sdm670 pinctrl
  pinctrl: qcom: do not reinitialize gpio valid mask
  pinctrl: qcom: add sdm670 pinctrl

 .../bindings/pinctrl/qcom,sdm670-tlmm.yaml    |  129 ++
 drivers/pinctrl/qcom/Kconfig                  |    9 +
 drivers/pinctrl/qcom/Makefile                 |    1 +
 drivers/pinctrl/qcom/pinctrl-msm.c            |    3 +-
 drivers/pinctrl/qcom/pinctrl-sdm670.c         | 1346 +++++++++++++++++
 5 files changed, 1486 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm670-tlmm.yaml
 create mode 100644 drivers/pinctrl/qcom/pinctrl-sdm670.c

Comments

Krzysztof Kozlowski Oct. 5, 2022, 2:35 p.m. UTC | #1
On 04/10/2022 23:58, Richard Acayan wrote:
> The Snapdragon 670 has a Top-Level Mode Multiplexer (TLMM) for various
> features. Add a driver to support it.

(...)

> +
> +const int sdm670_reserved_gpios[] = {
> +	58, 59, 60, 61, 62, 63, 64, 69, 70, 71, 72, 73, 74, 104, -1
> +};
> +
> +static const struct msm_pinctrl_soc_data sdm670_pinctrl = {
> +	.pins = sdm670_pins,
> +	.npins = ARRAY_SIZE(sdm670_pins),
> +	.functions = sdm670_functions,
> +	.nfunctions = ARRAY_SIZE(sdm670_functions),
> +	.groups = sdm670_groups,
> +	.ngroups = ARRAY_SIZE(sdm670_groups),
> +	.ngpios = 151,
> +	.reserved_gpios = sdm670_reserved_gpios,
> +	.complement_fw_gpio_ranges = true,

This still fails to build... v6 was not compilable, v7 is still.

Best regards,
Krzysztof
Richard Acayan Oct. 5, 2022, 10:23 p.m. UTC | #2
> On 04/10/2022 23:58, Richard Acayan wrote:
> > The Snapdragon 670 has a Top-Level Mode Multiplexer (TLMM) for various
> > features. Add a driver to support it.
> 
> (...)
> 
> > +
> > +const int sdm670_reserved_gpios[] = {
> > +	58, 59, 60, 61, 62, 63, 64, 69, 70, 71, 72, 73, 74, 104, -1
> > +};
> > +
> > +static const struct msm_pinctrl_soc_data sdm670_pinctrl = {
> > +	.pins = sdm670_pins,
> > +	.npins = ARRAY_SIZE(sdm670_pins),
> > +	.functions = sdm670_functions,
> > +	.nfunctions = ARRAY_SIZE(sdm670_functions),
> > +	.groups = sdm670_groups,
> > +	.ngroups = ARRAY_SIZE(sdm670_groups),
> > +	.ngpios = 151,
> > +	.reserved_gpios = sdm670_reserved_gpios,
> > +	.complement_fw_gpio_ranges = true,
> 
> This still fails to build... v6 was not compilable, v7 is still.

Sorry, I only see the problem with complement_fw_gpio_ranges being removed from
the struct and not being removed here (in v7). Is there another issue that
affected v6?

> 
> Best regards,
> Krzysztof
Krzysztof Kozlowski Oct. 6, 2022, 7:14 a.m. UTC | #3
On 06/10/2022 00:23, Richard Acayan wrote:
>> On 04/10/2022 23:58, Richard Acayan wrote:
>>> The Snapdragon 670 has a Top-Level Mode Multiplexer (TLMM) for various
>>> features. Add a driver to support it.
>>
>> (...)
>>
>>> +
>>> +const int sdm670_reserved_gpios[] = {
>>> +	58, 59, 60, 61, 62, 63, 64, 69, 70, 71, 72, 73, 74, 104, -1
>>> +};
>>> +
>>> +static const struct msm_pinctrl_soc_data sdm670_pinctrl = {
>>> +	.pins = sdm670_pins,
>>> +	.npins = ARRAY_SIZE(sdm670_pins),
>>> +	.functions = sdm670_functions,
>>> +	.nfunctions = ARRAY_SIZE(sdm670_functions),
>>> +	.groups = sdm670_groups,
>>> +	.ngroups = ARRAY_SIZE(sdm670_groups),
>>> +	.ngpios = 151,
>>> +	.reserved_gpios = sdm670_reserved_gpios,
>>> +	.complement_fw_gpio_ranges = true,
>>
>> This still fails to build... v6 was not compilable, v7 is still.
> 
> Sorry, I only see the problem with complement_fw_gpio_ranges being removed from
> the struct and not being removed here (in v7). Is there another issue that
> affected v6?

Check the reports from kernel build robot.

Best regards,
Krzysztof