141 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
						|
%YAML 1.2
 | 
						|
---
 | 
						|
$id: http://devicetree.org/schemas/clock/renesas,emev2-smu.yaml#
 | 
						|
$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
						|
 | 
						|
title: Renesas EMMA Mobile EV2 System Management Unit
 | 
						|
 | 
						|
maintainers:
 | 
						|
  - Geert Uytterhoeven <geert+renesas@glider.be>
 | 
						|
  - Magnus Damm <magnus.damm@gmail.com>
 | 
						|
 | 
						|
description: |
 | 
						|
  The System Management Unit is described in user's manual R19UH0037EJ1000_SMU.
 | 
						|
  This is not a clock provider, but clocks under SMU depend on it.  
 | 
						|
 | 
						|
properties:
 | 
						|
  compatible:
 | 
						|
    const: renesas,emev2-smu
 | 
						|
 | 
						|
  reg:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  '#address-cells':
 | 
						|
    const: 2
 | 
						|
 | 
						|
  '#size-cells':
 | 
						|
    const: 0
 | 
						|
 | 
						|
required:
 | 
						|
  - compatible
 | 
						|
  - reg
 | 
						|
  - '#address-cells'
 | 
						|
  - '#size-cells'
 | 
						|
 | 
						|
patternProperties:
 | 
						|
  ".*sclkdiv@.*":
 | 
						|
    type: object
 | 
						|
 | 
						|
    description: |
 | 
						|
      Function block with an input mux and a divider, which corresponds to
 | 
						|
      "Serial clock generator" in fig. "Clock System Overview" of the manual,
 | 
						|
      and "xxx frequency division setting register" (XXXCLKDIV) registers.
 | 
						|
      This makes internal (neither input nor output) clock that is provided
 | 
						|
      to input of xxxGCLK block.      
 | 
						|
 | 
						|
    properties:
 | 
						|
      compatible:
 | 
						|
        const: renesas,emev2-smu-clkdiv
 | 
						|
 | 
						|
      reg:
 | 
						|
        maxItems: 1
 | 
						|
        description:
 | 
						|
          Byte offset from SMU base and Bit position in the register.
 | 
						|
 | 
						|
      clocks:
 | 
						|
        minItems: 1
 | 
						|
        maxItems: 4
 | 
						|
 | 
						|
      '#clock-cells':
 | 
						|
        const: 0
 | 
						|
 | 
						|
    required:
 | 
						|
      - compatible
 | 
						|
      - reg
 | 
						|
      - clocks
 | 
						|
      - '#clock-cells'
 | 
						|
 | 
						|
    additionalProperties: false
 | 
						|
 | 
						|
  ".*sclk@.*":
 | 
						|
    type: object
 | 
						|
 | 
						|
    description: |
 | 
						|
      Clock gating node shown as "Clock stop processing block" in the
 | 
						|
      fig. "Clock System Overview" of the manual.
 | 
						|
      Registers are "xxx clock gate control register" (XXXGCLKCTRL).      
 | 
						|
 | 
						|
    properties:
 | 
						|
      compatible:
 | 
						|
        const: renesas,emev2-smu-gclk
 | 
						|
 | 
						|
      reg:
 | 
						|
        maxItems: 1
 | 
						|
        description:
 | 
						|
          Byte offset from SMU base and Bit position in the register.
 | 
						|
 | 
						|
      clocks:
 | 
						|
        maxItems: 1
 | 
						|
 | 
						|
      '#clock-cells':
 | 
						|
        const: 0
 | 
						|
 | 
						|
    required:
 | 
						|
      - compatible
 | 
						|
      - reg
 | 
						|
      - clocks
 | 
						|
      - '#clock-cells'
 | 
						|
 | 
						|
    additionalProperties: false
 | 
						|
 | 
						|
additionalProperties: true
 | 
						|
 | 
						|
examples:
 | 
						|
  - |
 | 
						|
    // Example of clock-tree description:
 | 
						|
    //
 | 
						|
    //  This describes a clock path in the clock tree
 | 
						|
    //   c32ki -> pll3_fo -> usia_u0_sclkdiv -> usia_u0_sclk
 | 
						|
    clocks@e0110000 {
 | 
						|
            compatible = "renesas,emev2-smu";
 | 
						|
            reg = <0xe0110000 0x10000>;
 | 
						|
            #address-cells = <2>;
 | 
						|
            #size-cells = <0>;
 | 
						|
 | 
						|
            c32ki: c32ki {
 | 
						|
                    compatible = "fixed-clock";
 | 
						|
                    clock-frequency = <32768>;
 | 
						|
                    #clock-cells = <0>;
 | 
						|
            };
 | 
						|
            pll3_fo: pll3_fo {
 | 
						|
                    compatible = "fixed-factor-clock";
 | 
						|
                    clocks = <&c32ki>;
 | 
						|
                    clock-div = <1>;
 | 
						|
                    clock-mult = <7000>;
 | 
						|
                    #clock-cells = <0>;
 | 
						|
            };
 | 
						|
            usia_u0_sclkdiv: usia_u0_sclkdiv@610,0 {
 | 
						|
                    compatible = "renesas,emev2-smu-clkdiv";
 | 
						|
                    reg = <0x610 0>;
 | 
						|
                    clocks = <&pll3_fo>;
 | 
						|
                    #clock-cells = <0>;
 | 
						|
            };
 | 
						|
            usia_u0_sclk: usia_u0_sclk@4a0,1 {
 | 
						|
                    compatible = "renesas,emev2-smu-gclk";
 | 
						|
                    reg = <0x4a0 1>;
 | 
						|
                    clocks = <&usia_u0_sclkdiv>;
 | 
						|
                    #clock-cells = <0>;
 | 
						|
            };
 | 
						|
    };    
 |