1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/sram/qcom,ocmem.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: On Chip Memory (OCMEM) that is present on some Qualcomm Snapdragon SoCs. 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Brian Masney <masneyb@onstation.org> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotdescription: | 13c66ec88fSEmmanuel Vadot The On Chip Memory (OCMEM) is typically used by the GPU, camera/video, and 14c66ec88fSEmmanuel Vadot audio components on some Snapdragon SoCs. 15c66ec88fSEmmanuel Vadot 16c66ec88fSEmmanuel Vadotproperties: 17c66ec88fSEmmanuel Vadot compatible: 18*aa1a8ff2SEmmanuel Vadot enum: 19*aa1a8ff2SEmmanuel Vadot - qcom,msm8226-ocmem # v1.1.0 20*aa1a8ff2SEmmanuel Vadot - qcom,msm8974-ocmem # v1.4.0 21c66ec88fSEmmanuel Vadot 22c66ec88fSEmmanuel Vadot reg: 23c66ec88fSEmmanuel Vadot items: 24c66ec88fSEmmanuel Vadot - description: Control registers 25c66ec88fSEmmanuel Vadot - description: OCMEM address range 26c66ec88fSEmmanuel Vadot 27c66ec88fSEmmanuel Vadot reg-names: 28c66ec88fSEmmanuel Vadot items: 29c66ec88fSEmmanuel Vadot - const: ctrl 30c66ec88fSEmmanuel Vadot - const: mem 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot clocks: 33*aa1a8ff2SEmmanuel Vadot minItems: 1 34c66ec88fSEmmanuel Vadot items: 35c66ec88fSEmmanuel Vadot - description: Core clock 36c66ec88fSEmmanuel Vadot - description: Interface clock 37c66ec88fSEmmanuel Vadot 38c66ec88fSEmmanuel Vadot clock-names: 39*aa1a8ff2SEmmanuel Vadot minItems: 1 40c66ec88fSEmmanuel Vadot items: 41c66ec88fSEmmanuel Vadot - const: core 42c66ec88fSEmmanuel Vadot - const: iface 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot '#address-cells': 45c66ec88fSEmmanuel Vadot const: 1 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot '#size-cells': 48c66ec88fSEmmanuel Vadot const: 1 49c66ec88fSEmmanuel Vadot 50c66ec88fSEmmanuel Vadot ranges: 51c66ec88fSEmmanuel Vadot maxItems: 1 52c66ec88fSEmmanuel Vadot 53c66ec88fSEmmanuel Vadotrequired: 54c66ec88fSEmmanuel Vadot - compatible 55c66ec88fSEmmanuel Vadot - reg 56c66ec88fSEmmanuel Vadot - reg-names 57c66ec88fSEmmanuel Vadot - clocks 58c66ec88fSEmmanuel Vadot - clock-names 59c66ec88fSEmmanuel Vadot - '#address-cells' 60c66ec88fSEmmanuel Vadot - '#size-cells' 61c66ec88fSEmmanuel Vadot - ranges 62c66ec88fSEmmanuel Vadot 63c66ec88fSEmmanuel VadotadditionalProperties: false 64c66ec88fSEmmanuel Vadot 65*aa1a8ff2SEmmanuel VadotallOf: 66*aa1a8ff2SEmmanuel Vadot - if: 67*aa1a8ff2SEmmanuel Vadot properties: 68*aa1a8ff2SEmmanuel Vadot compatible: 69*aa1a8ff2SEmmanuel Vadot contains: 70*aa1a8ff2SEmmanuel Vadot enum: 71*aa1a8ff2SEmmanuel Vadot - qcom,msm8974-ocmem 72*aa1a8ff2SEmmanuel Vadot then: 73*aa1a8ff2SEmmanuel Vadot properties: 74*aa1a8ff2SEmmanuel Vadot clocks: 75*aa1a8ff2SEmmanuel Vadot minItems: 2 76*aa1a8ff2SEmmanuel Vadot clock-names: 77*aa1a8ff2SEmmanuel Vadot minItems: 2 78*aa1a8ff2SEmmanuel Vadot else: 79*aa1a8ff2SEmmanuel Vadot properties: 80*aa1a8ff2SEmmanuel Vadot clocks: 81*aa1a8ff2SEmmanuel Vadot minItems: 1 82*aa1a8ff2SEmmanuel Vadot clock-names: 83*aa1a8ff2SEmmanuel Vadot minItems: 1 84*aa1a8ff2SEmmanuel Vadot 85c66ec88fSEmmanuel VadotpatternProperties: 86c66ec88fSEmmanuel Vadot "-sram@[0-9a-f]+$": 87c66ec88fSEmmanuel Vadot type: object 88fac71e4eSEmmanuel Vadot additionalProperties: false 89c66ec88fSEmmanuel Vadot description: A region of reserved memory. 90c66ec88fSEmmanuel Vadot 91c66ec88fSEmmanuel Vadot properties: 92c66ec88fSEmmanuel Vadot reg: 93c66ec88fSEmmanuel Vadot maxItems: 1 94c66ec88fSEmmanuel Vadot 95c66ec88fSEmmanuel Vadot required: 96c66ec88fSEmmanuel Vadot - reg 97c66ec88fSEmmanuel Vadot 98c66ec88fSEmmanuel Vadotexamples: 99c66ec88fSEmmanuel Vadot - | 100c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmcc.h> 101c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/qcom,mmcc-msm8974.h> 102c66ec88fSEmmanuel Vadot 103b97ee269SEmmanuel Vadot sram@fdd00000 { 104c66ec88fSEmmanuel Vadot compatible = "qcom,msm8974-ocmem"; 105c66ec88fSEmmanuel Vadot 106c66ec88fSEmmanuel Vadot reg = <0xfdd00000 0x2000>, 107c66ec88fSEmmanuel Vadot <0xfec00000 0x180000>; 108c66ec88fSEmmanuel Vadot reg-names = "ctrl", 109c66ec88fSEmmanuel Vadot "mem"; 110c66ec88fSEmmanuel Vadot 111c66ec88fSEmmanuel Vadot clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>, 112c66ec88fSEmmanuel Vadot <&mmcc OCMEMCX_OCMEMNOC_CLK>; 113c66ec88fSEmmanuel Vadot clock-names = "core", 114c66ec88fSEmmanuel Vadot "iface"; 115c66ec88fSEmmanuel Vadot 116c66ec88fSEmmanuel Vadot #address-cells = <1>; 117c66ec88fSEmmanuel Vadot #size-cells = <1>; 118c66ec88fSEmmanuel Vadot ranges = <0 0xfec00000 0x100000>; 119c66ec88fSEmmanuel Vadot 120c66ec88fSEmmanuel Vadot gmu-sram@0 { 121c66ec88fSEmmanuel Vadot reg = <0x0 0x100000>; 122c66ec88fSEmmanuel Vadot }; 123c66ec88fSEmmanuel Vadot }; 124