128 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
						|
%YAML 1.2
 | 
						|
---
 | 
						|
$id: http://devicetree.org/schemas/gpio/gpio-vf610.yaml#
 | 
						|
$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
						|
 | 
						|
title: Freescale VF610 PORT/GPIO module
 | 
						|
 | 
						|
maintainers:
 | 
						|
  - Stefan Agner <stefan@agner.ch>
 | 
						|
 | 
						|
description: |
 | 
						|
  The Freescale PORT/GPIO modules are two adjacent modules providing GPIO
 | 
						|
  functionality. Each pair serves 32 GPIOs. The VF610 has 5 instances of
 | 
						|
  each, and each PORT module has its own interrupt.
 | 
						|
 | 
						|
  Note: Each GPIO port should have an alias correctly numbered in "aliases"
 | 
						|
  node.  
 | 
						|
 | 
						|
properties:
 | 
						|
  compatible:
 | 
						|
    oneOf:
 | 
						|
      - const: fsl,imx8ulp-gpio
 | 
						|
      - const: fsl,vf610-gpio
 | 
						|
      - items:
 | 
						|
          - const: fsl,imx7ulp-gpio
 | 
						|
          - const: fsl,vf610-gpio
 | 
						|
      - items:
 | 
						|
          - enum:
 | 
						|
              - fsl,imx93-gpio
 | 
						|
              - fsl,imx95-gpio
 | 
						|
          - const: fsl,imx8ulp-gpio
 | 
						|
 | 
						|
  reg:
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 2
 | 
						|
 | 
						|
  interrupts:
 | 
						|
    items:
 | 
						|
      - description: GPIO Trustzone non-secure interrupt number
 | 
						|
      - description: GPIO Trustzone secure interrupt number
 | 
						|
    minItems: 1
 | 
						|
 | 
						|
  interrupt-controller: true
 | 
						|
 | 
						|
  "#interrupt-cells":
 | 
						|
    const: 2
 | 
						|
 | 
						|
  "#gpio-cells":
 | 
						|
    const: 2
 | 
						|
 | 
						|
  gpio-controller: true
 | 
						|
 | 
						|
  gpio-line-names:
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 32
 | 
						|
 | 
						|
  clocks:
 | 
						|
    items:
 | 
						|
      - description: SoC GPIO clock
 | 
						|
      - description: SoC PORT clock
 | 
						|
 | 
						|
  clock-names:
 | 
						|
    items:
 | 
						|
      - const: gpio
 | 
						|
      - const: port
 | 
						|
 | 
						|
  gpio-ranges:
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 4
 | 
						|
 | 
						|
patternProperties:
 | 
						|
  "^.+-hog(-[0-9]+)?$":
 | 
						|
    type: object
 | 
						|
 | 
						|
    required:
 | 
						|
      - gpio-hog
 | 
						|
 | 
						|
required:
 | 
						|
  - compatible
 | 
						|
  - reg
 | 
						|
  - interrupts
 | 
						|
  - interrupt-controller
 | 
						|
  - "#interrupt-cells"
 | 
						|
  - "#gpio-cells"
 | 
						|
  - gpio-controller
 | 
						|
 | 
						|
allOf:
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - fsl,vf610-gpio
 | 
						|
              - fsl,imx7ulp-gpio
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        interrupts:
 | 
						|
          maxItems: 1
 | 
						|
        reg:
 | 
						|
          items:
 | 
						|
            - description: PORT register base address
 | 
						|
            - description: GPIO register base address
 | 
						|
    else:
 | 
						|
      properties:
 | 
						|
        interrupts:
 | 
						|
          minItems: 2
 | 
						|
        reg:
 | 
						|
          items:
 | 
						|
            - description: GPIO register base address
 | 
						|
 | 
						|
additionalProperties: false
 | 
						|
 | 
						|
examples:
 | 
						|
  - |
 | 
						|
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 | 
						|
 | 
						|
    gpio1: gpio@40049000 {
 | 
						|
        compatible = "fsl,vf610-gpio";
 | 
						|
        reg = <0x40049000 0x1000>, <0x400ff000 0x40>;
 | 
						|
        interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
 | 
						|
        gpio-controller;
 | 
						|
        #gpio-cells = <2>;
 | 
						|
        interrupt-controller;
 | 
						|
        #interrupt-cells = <2>;
 | 
						|
        gpio-ranges = <&iomuxc 0 0 32>;
 | 
						|
    };    
 |