doc: Add dt-bindings and descriptions for ADI SC5xx-family pinctrl

This adds the necessary dt-bindings and documentation to use the ADI
SC5xx pinctrl driver in a device tree. It is not yet available upstream
in the Linux kernel. Eventually, it will be moved there.

Signed-off-by: Vasileios Bimpikas <vasileios.bimpikas@analog.com>
Signed-off-by: Utsav Agarwal <utsav.agarwal@analog.com>
Signed-off-by: Arturs Artamonovs <arturs.artamonovs@analog.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
This commit is contained in:
Greg Malysa 2025-02-26 12:30:24 -05:00 committed by Tom Rini
parent 79ccd6c7dc
commit a0ffd8d7cd
3 changed files with 96 additions and 0 deletions

View file

@ -629,12 +629,14 @@ F: arch/arm/mach-sc5xx/
F: board/adi/
F: doc/device-tree-bindings/arm/adi/adi,sc5xx.yaml
F: doc/device-tree-bindings/clock/adi,sc5xx-clocks.yaml
F: doc/device-tree-bindings/pinctrl/adi,adsp-pinctrl.yaml
F: doc/device-tree-bindings/timer/adi,sc5xx-gptimer.yaml
F: drivers/clk/adi/
F: drivers/pinctrl/pinctrl-adi-adsp.c
F: drivers/serial/serial_adi_uart4.c
F: drivers/timer/adi_sc5xx_timer.c
F: include/configs/sc5*
F: include/dt-bindings/pinctrl/adi-adsp.h
F: include/env/adi/
ARM SNAPDRAGON

View file

@ -0,0 +1,73 @@
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/adi,adsp-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Pinctrl Driver for Analog Devices SC5xx Processors
maintainers:
- Vasileios Bimpikas <vasileios.bimpikas@analog.com>
- Utsav Agarwal <utsav.agarwal@analog.com>
- Arturs Artamonovs <arturs.artamonovs@analog.com>
description: |
This driver provides an interface for performing pin configuration
Analog Devices SoCs using the ADSP PORT hardware for pin
configuration according to the HRM. Currently this is only the
SC5xx series.
properties:
compatible:
const: adi,adsp-pinctrl
reg:
maxItems: 1
adi,npins:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Total number of pins available to this SoC's pin controller,
found in the HRM.
patternProperties:
'_pins$':
type: object
properties:
adi,pins:
$ref: /schemas/types.yaml#/definitions/uint32-array
description:
For n pins, 2n values must be provided as a sequence of pin
name as identified with the ADI_ADSP_PIN() macro and a pin
function constant, both defined in
include/dt-bindings/pinctrl/adi-adsp.h.
required:
- adi,pins
additionalProperties: false
required:
- compatible
- reg
- adi,npins
additionalProperties: false
examples:
- |
#include <dt-bindings/pinctrl/adi-adsp.h>
soc {
pinctrl0: pinctrl@0x31004000 {
compatible = "adi,adsp-pinctrl";
reg = <0x31004000 0x500>;
adi,npins = <135>;
uart0_default: uart0_pins {
adi,pins = <ADI_ADSP_PIN('A', 6) ADI_ADSP_PINFUNC_ALT1>,
<ADI_ADSP_PIN('A', 7) ADI_ADSP_PINFUNC_ALT1>;
};
};
};

View file

@ -0,0 +1,21 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* (C) Copyright 2022 - Analog Devices, Inc.
*
* Written and/or maintained by Timesys Corporation
*
* Contact: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
* Contact: Greg Malysa <greg.malysa@timesys.com>
*
*/
#ifndef DT_BINDINGS_PINCTRL_ADI_ADSP
#define DT_BINDINGS_PINCTRL_ADI_ADSP
#define ADI_ADSP_PIN(port, pin) (16 * ((port) - 'A') + (pin))
#define ADI_ADSP_PINFUNC_ALT0 0
#define ADI_ADSP_PINFUNC_ALT1 1
#define ADI_ADSP_PINFUNC_ALT2 2
#define ADI_ADSP_PINFUNC_ALT3 3
#endif