mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-11-01 09:13:37 +00:00 
			
		
		
		
	Add dedicated samsung,exynos8895-uart compatible to the dt-schema for representing uart of the Exynos8895 SoC. Like GS101, it has a required DT property samsung,uart-fifosize, but it does not exhibit the 32 bit register access limit. Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20241023090902.538040-2-ivo.ivanov.ivanov1@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
		
			
				
	
	
		
			217 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			217 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# SPDX-License-Identifier: GPL-2.0
 | 
						|
%YAML 1.2
 | 
						|
---
 | 
						|
$id: http://devicetree.org/schemas/serial/samsung_uart.yaml#
 | 
						|
$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
						|
 | 
						|
title: Samsung S3C, S5P, Exynos, and S5L (Apple SoC) SoC UART Controller
 | 
						|
 | 
						|
maintainers:
 | 
						|
  - Krzysztof Kozlowski <krzk@kernel.org>
 | 
						|
  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | 
						|
 | 
						|
description: |+
 | 
						|
  Each Samsung UART should have an alias correctly numbered in the "aliases"
 | 
						|
  node, according to serialN format, where N is the port number (non-negative
 | 
						|
  decimal integer) as specified by User's Manual of respective SoC.
 | 
						|
 | 
						|
properties:
 | 
						|
  compatible:
 | 
						|
    oneOf:
 | 
						|
      - enum:
 | 
						|
          - apple,s5l-uart
 | 
						|
          - axis,artpec8-uart
 | 
						|
          - google,gs101-uart
 | 
						|
          - samsung,s3c6400-uart
 | 
						|
          - samsung,s5pv210-uart
 | 
						|
          - samsung,exynos4210-uart
 | 
						|
          - samsung,exynos5433-uart
 | 
						|
          - samsung,exynos850-uart
 | 
						|
          - samsung,exynos8895-uart
 | 
						|
      - items:
 | 
						|
          - enum:
 | 
						|
              - samsung,exynos7-uart
 | 
						|
              - tesla,fsd-uart
 | 
						|
          - const: samsung,exynos4210-uart
 | 
						|
      - items:
 | 
						|
          - enum:
 | 
						|
              - samsung,exynos7885-uart
 | 
						|
          - const: samsung,exynos5433-uart
 | 
						|
      - items:
 | 
						|
          - enum:
 | 
						|
              - samsung,exynosautov9-uart
 | 
						|
              - samsung,exynosautov920-uart
 | 
						|
          - const: samsung,exynos850-uart
 | 
						|
 | 
						|
  reg:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  reg-io-width:
 | 
						|
    description: |
 | 
						|
      The size (in bytes) of the IO accesses that should be performed
 | 
						|
      on the device.
 | 
						|
    enum: [ 1, 4 ]
 | 
						|
 | 
						|
  clocks:
 | 
						|
    minItems: 2
 | 
						|
    maxItems: 5
 | 
						|
 | 
						|
  clock-names:
 | 
						|
    minItems: 2
 | 
						|
    maxItems: 5
 | 
						|
 | 
						|
  dmas:
 | 
						|
    items:
 | 
						|
      - description: DMA controller phandle and request line for RX
 | 
						|
      - description: DMA controller phandle and request line for TX
 | 
						|
 | 
						|
  dma-names:
 | 
						|
    items:
 | 
						|
      - const: rx
 | 
						|
      - const: tx
 | 
						|
 | 
						|
  interrupts:
 | 
						|
    description: RX interrupt and optionally TX interrupt.
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 2
 | 
						|
 | 
						|
  power-domains:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  samsung,uart-fifosize:
 | 
						|
    description: The fifo size supported by the UART channel.
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    enum: [16, 64, 256]
 | 
						|
 | 
						|
required:
 | 
						|
  - compatible
 | 
						|
  - clocks
 | 
						|
  - clock-names
 | 
						|
  - interrupts
 | 
						|
  - reg
 | 
						|
 | 
						|
allOf:
 | 
						|
  - $ref: serial.yaml#
 | 
						|
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - samsung,s3c6400-uart
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        clocks:
 | 
						|
          minItems: 3
 | 
						|
          maxItems: 3
 | 
						|
 | 
						|
        clock-names:
 | 
						|
          items:
 | 
						|
            - const: uart
 | 
						|
            - const: clk_uart_baud2
 | 
						|
            - const: clk_uart_baud3
 | 
						|
 | 
						|
    else:
 | 
						|
      properties:
 | 
						|
        clock-names:
 | 
						|
          minItems: 2
 | 
						|
          items:
 | 
						|
            - const: uart
 | 
						|
            - const: clk_uart_baud0
 | 
						|
            - const: clk_uart_baud1
 | 
						|
            - const: clk_uart_baud2
 | 
						|
            - const: clk_uart_baud3
 | 
						|
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - samsung,s5pv210-uart
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        clocks:
 | 
						|
          minItems: 3
 | 
						|
          maxItems: 3
 | 
						|
 | 
						|
        clock-names:
 | 
						|
          minItems: 3
 | 
						|
          maxItems: 3
 | 
						|
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - apple,s5l-uart
 | 
						|
              - axis,artpec8-uart
 | 
						|
              - samsung,exynos4210-uart
 | 
						|
              - samsung,exynos5433-uart
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        clocks:
 | 
						|
          maxItems: 2
 | 
						|
 | 
						|
        clock-names:
 | 
						|
          maxItems: 2
 | 
						|
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - google,gs101-uart
 | 
						|
              - samsung,exynos8895-uart
 | 
						|
    then:
 | 
						|
      required:
 | 
						|
        - samsung,uart-fifosize
 | 
						|
      properties:
 | 
						|
        clocks:
 | 
						|
          maxItems: 2
 | 
						|
 | 
						|
        clock-names:
 | 
						|
          maxItems: 2
 | 
						|
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - google,gs101-uart
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        reg-io-width: false
 | 
						|
 | 
						|
unevaluatedProperties: false
 | 
						|
 | 
						|
examples:
 | 
						|
  - |
 | 
						|
    #include <dt-bindings/clock/samsung,s3c64xx-clock.h>
 | 
						|
 | 
						|
    uart0: serial@7f005000 {
 | 
						|
        compatible = "samsung,s3c6400-uart";
 | 
						|
        reg = <0x7f005000 0x100>;
 | 
						|
        interrupt-parent = <&vic1>;
 | 
						|
        interrupts = <5>;
 | 
						|
        clock-names = "uart", "clk_uart_baud2",
 | 
						|
                      "clk_uart_baud3";
 | 
						|
        clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>,
 | 
						|
                 <&clocks SCLK_UART>;
 | 
						|
        samsung,uart-fifosize = <16>;
 | 
						|
    };
 | 
						|
  - |
 | 
						|
    #include <dt-bindings/clock/google,gs101.h>
 | 
						|
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 | 
						|
    #include <dt-bindings/interrupt-controller/irq.h>
 | 
						|
 | 
						|
    serial_0: serial@10a00000 {
 | 
						|
      compatible = "google,gs101-uart";
 | 
						|
      reg = <0x10a00000 0xc0>;
 | 
						|
      clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0>,
 | 
						|
               <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_0>;
 | 
						|
      clock-names = "uart", "clk_uart_baud0";
 | 
						|
      interrupts = <GIC_SPI 634 IRQ_TYPE_LEVEL_HIGH 0>;
 | 
						|
      pinctrl-0 = <&uart0_bus>;
 | 
						|
      pinctrl-names = "default";
 | 
						|
      samsung,uart-fifosize = <256>;
 | 
						|
    };
 |