11282157aSChris Packham# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 21282157aSChris Packham%YAML 1.2 31282157aSChris Packham--- 41282157aSChris Packham$id: http://devicetree.org/schemas/gpio/gpio-mvebu.yaml# 51282157aSChris Packham$schema: http://devicetree.org/meta-schemas/core.yaml# 61282157aSChris Packham 71282157aSChris Packhamtitle: Marvell EBU GPIO controller 81282157aSChris Packham 91282157aSChris Packhammaintainers: 101282157aSChris Packham - Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 111282157aSChris Packham - Andrew Lunn <andrew@lunn.ch> 121282157aSChris Packham 131282157aSChris Packhamproperties: 141282157aSChris Packham compatible: 151282157aSChris Packham oneOf: 161282157aSChris Packham - enum: 171282157aSChris Packham - marvell,armada-8k-gpio 181282157aSChris Packham - marvell,orion-gpio 191282157aSChris Packham 201282157aSChris Packham - items: 211282157aSChris Packham - enum: 221282157aSChris Packham - marvell,mv78200-gpio 231282157aSChris Packham - marvell,armada-370-gpio 241282157aSChris Packham - const: marvell,orion-gpio 251282157aSChris Packham 26988c8c0cSChris Packham - description: Deprecated binding 27988c8c0cSChris Packham items: 28988c8c0cSChris Packham - const: marvell,armadaxp-gpio 29988c8c0cSChris Packham - const: marvell,orion-gpio 30988c8c0cSChris Packham deprecated: true 31988c8c0cSChris Packham 321282157aSChris Packham reg: 331282157aSChris Packham description: | 341282157aSChris Packham Address and length of the register set for the device. Not used for 351282157aSChris Packham marvell,armada-8k-gpio. 361282157aSChris Packham 37988c8c0cSChris Packham A second entry can be provided, for the PWM function using the GPIO Blink 38988c8c0cSChris Packham Counter on/off registers. 391282157aSChris Packham minItems: 1 401282157aSChris Packham maxItems: 2 411282157aSChris Packham 421282157aSChris Packham reg-names: 431282157aSChris Packham items: 441282157aSChris Packham - const: gpio 451282157aSChris Packham - const: pwm 461282157aSChris Packham minItems: 1 471282157aSChris Packham 48*df08a6fcSChris Packham offset: 49*df08a6fcSChris Packham $ref: /schemas/types.yaml#/definitions/uint32 50*df08a6fcSChris Packham description: Offset in the register map for the gpio registers (in bytes) 51*df08a6fcSChris Packham 521282157aSChris Packham interrupts: 531282157aSChris Packham description: | 541282157aSChris Packham The list of interrupts that are used for all the pins managed by this 551282157aSChris Packham GPIO bank. There can be more than one interrupt (example: 1 interrupt 561282157aSChris Packham per 8 pins on Armada XP, which means 4 interrupts per bank of 32 571282157aSChris Packham GPIOs). 581282157aSChris Packham minItems: 1 591282157aSChris Packham maxItems: 4 601282157aSChris Packham 611282157aSChris Packham interrupt-controller: true 621282157aSChris Packham 631282157aSChris Packham "#interrupt-cells": 641282157aSChris Packham const: 2 651282157aSChris Packham 661282157aSChris Packham gpio-controller: true 671282157aSChris Packham 681282157aSChris Packham ngpios: 691282157aSChris Packham minimum: 1 701282157aSChris Packham maximum: 32 711282157aSChris Packham 721282157aSChris Packham "#gpio-cells": 731282157aSChris Packham const: 2 741282157aSChris Packham 75*df08a6fcSChris Packham marvell,pwm-offset: 76*df08a6fcSChris Packham $ref: /schemas/types.yaml#/definitions/uint32 77*df08a6fcSChris Packham description: Offset in the register map for the pwm registers (in bytes) 78*df08a6fcSChris Packham 791282157aSChris Packham "#pwm-cells": 801282157aSChris Packham description: 811282157aSChris Packham The first cell is the GPIO line number. The second cell is the period 821282157aSChris Packham in nanoseconds. 831282157aSChris Packham const: 2 841282157aSChris Packham 851282157aSChris Packham clocks: 861282157aSChris Packham description: 871282157aSChris Packham Clock(s) used for PWM function. 881282157aSChris Packham items: 891282157aSChris Packham - description: Core clock 901282157aSChris Packham - description: AXI bus clock 911282157aSChris Packham minItems: 1 921282157aSChris Packham 931282157aSChris Packham clock-names: 941282157aSChris Packham items: 951282157aSChris Packham - const: core 961282157aSChris Packham - const: axi 971282157aSChris Packham minItems: 1 981282157aSChris Packham 991282157aSChris Packhamrequired: 1001282157aSChris Packham - compatible 1011282157aSChris Packham - gpio-controller 1021282157aSChris Packham - ngpios 1031282157aSChris Packham - "#gpio-cells" 1041282157aSChris Packham 1051282157aSChris PackhamallOf: 1061282157aSChris Packham - if: 1071282157aSChris Packham properties: 1081282157aSChris Packham compatible: 1091282157aSChris Packham contains: 1101282157aSChris Packham const: marvell,armada-8k-gpio 1111282157aSChris Packham then: 1121282157aSChris Packham required: 1131282157aSChris Packham - offset 1141282157aSChris Packham else: 1151282157aSChris Packham required: 1161282157aSChris Packham - reg 1171282157aSChris Packham 1181282157aSChris PackhamunevaluatedProperties: true 1191282157aSChris Packham 1201282157aSChris Packhamexamples: 1211282157aSChris Packham - | 1221282157aSChris Packham gpio@d0018100 { 1231282157aSChris Packham compatible = "marvell,armadaxp-gpio", "marvell,orion-gpio"; 1241282157aSChris Packham reg = <0xd0018100 0x40>, <0xd0018800 0x30>; 1251282157aSChris Packham ngpios = <32>; 1261282157aSChris Packham gpio-controller; 1271282157aSChris Packham #gpio-cells = <2>; 1281282157aSChris Packham interrupt-controller; 1291282157aSChris Packham #interrupt-cells = <2>; 1301282157aSChris Packham interrupts = <16>, <17>, <18>, <19>; 1311282157aSChris Packham }; 1321282157aSChris Packham 1331282157aSChris Packham - | 1341282157aSChris Packham gpio@18140 { 1351282157aSChris Packham compatible = "marvell,armada-370-gpio", "marvell,orion-gpio"; 1361282157aSChris Packham reg = <0x18140 0x40>, <0x181c8 0x08>; 1371282157aSChris Packham reg-names = "gpio", "pwm"; 1381282157aSChris Packham ngpios = <17>; 1391282157aSChris Packham gpio-controller; 1401282157aSChris Packham #gpio-cells = <2>; 1411282157aSChris Packham #pwm-cells = <2>; 1421282157aSChris Packham interrupt-controller; 1431282157aSChris Packham #interrupt-cells = <2>; 1441282157aSChris Packham interrupts = <87>, <88>, <89>; 1451282157aSChris Packham clocks = <&coreclk 0>; 1461282157aSChris Packham }; 147