[PATCH] pinctrl: qcom: handle reserved ranges

Alexey Minnekhanov alexeymin at postmarketos.org
Thu Apr 10 01:40:26 CEST 2025


On 4/1/25 10:46, Neil Armstrong via groups.io wrote:
> From: Caleb Connolly <caleb.connolly at linaro.org>
> 
> Some Qualcomm boards feature reserved ranges of pins which are protected
> by firmware. Attempting to read or write any registers associated with
> these pins results the board resetting.
> 
> Add support for parsing these ranges from devicetree and ensure that the
> pinctrl and GPIO drivers don't try to interact with these pins.
> 
> Signed-off-by: Caleb Connolly <caleb.connolly at linaro.org>
> Signed-off-by: Neil Armstrong <neil.armstrong at linaro.org>
> ---
>   arch/arm/mach-snapdragon/include/mach/gpio.h | 15 +++++++
>   drivers/gpio/msm_gpio.c                      |  9 ++++
>   drivers/pinctrl/qcom/pinctrl-qcom.c          | 64 ++++++++++++++++++++++++++++
>   3 files changed, 88 insertions(+)

...

> +#define MSM_PINCTRL_MAX_RESERVED_RANGES 32
> +
>   struct msm_pinctrl_priv {
>   	phys_addr_t base;
>   	struct msm_pinctrl_data *data;
> +	u32 reserved_ranges[MSM_PINCTRL_MAX_RESERVED_RANGES * 2];
> +	int reserved_ranges_count;
>   };
Why storing of reserved pins isn't implemented using bitmap?

     DECLARE_BITMAP(reserved_pins, 256);

would only consume 32 bytes, instead of 256+4 like here.

Do I miss something?

---
Regards,
Alexey Minnekhanov


More information about the U-Boot mailing list