162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/interconnect/fsl,imx8m-noc.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Generic i.MX bus frequency device 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Peng Fan <peng.fan@nxp.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci The i.MX SoC family has multiple buses for which clock frequency (and 1462306a36Sopenharmony_ci sometimes voltage) can be adjusted. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci Some of those buses expose register areas mentioned in the memory maps as GPV 1762306a36Sopenharmony_ci ("Global Programmers View") but not all. Access to this area might be denied 1862306a36Sopenharmony_ci for normal (non-secure) world. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci The buses are based on externally licensed IPs such as ARM NIC-301 and 2162306a36Sopenharmony_ci Arteris FlexNOC but DT bindings are specific to the integration of these bus 2262306a36Sopenharmony_ci interconnect IPs into imx SOCs. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciproperties: 2562306a36Sopenharmony_ci compatible: 2662306a36Sopenharmony_ci oneOf: 2762306a36Sopenharmony_ci - items: 2862306a36Sopenharmony_ci - enum: 2962306a36Sopenharmony_ci - fsl,imx8mm-nic 3062306a36Sopenharmony_ci - fsl,imx8mn-nic 3162306a36Sopenharmony_ci - fsl,imx8mp-nic 3262306a36Sopenharmony_ci - fsl,imx8mq-nic 3362306a36Sopenharmony_ci - const: fsl,imx8m-nic 3462306a36Sopenharmony_ci - items: 3562306a36Sopenharmony_ci - enum: 3662306a36Sopenharmony_ci - fsl,imx8mm-noc 3762306a36Sopenharmony_ci - fsl,imx8mn-noc 3862306a36Sopenharmony_ci - fsl,imx8mp-noc 3962306a36Sopenharmony_ci - fsl,imx8mq-noc 4062306a36Sopenharmony_ci - const: fsl,imx8m-noc 4162306a36Sopenharmony_ci - const: fsl,imx8m-nic 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci reg: 4462306a36Sopenharmony_ci maxItems: 1 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci clocks: 4762306a36Sopenharmony_ci maxItems: 1 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci operating-points-v2: true 5062306a36Sopenharmony_ci opp-table: 5162306a36Sopenharmony_ci type: object 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci fsl,ddrc: 5462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle 5562306a36Sopenharmony_ci description: 5662306a36Sopenharmony_ci Phandle to DDR Controller. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci '#interconnect-cells': 5962306a36Sopenharmony_ci description: 6062306a36Sopenharmony_ci If specified then also act as an interconnect provider. Should only be 6162306a36Sopenharmony_ci set once per soc on the main noc. 6262306a36Sopenharmony_ci const: 1 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_cirequired: 6562306a36Sopenharmony_ci - compatible 6662306a36Sopenharmony_ci - clocks 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciadditionalProperties: false 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciexamples: 7162306a36Sopenharmony_ci - | 7262306a36Sopenharmony_ci #include <dt-bindings/clock/imx8mm-clock.h> 7362306a36Sopenharmony_ci #include <dt-bindings/interconnect/imx8mm.h> 7462306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci noc: interconnect@32700000 { 7762306a36Sopenharmony_ci compatible = "fsl,imx8mm-noc", "fsl,imx8m-noc"; 7862306a36Sopenharmony_ci reg = <0x32700000 0x100000>; 7962306a36Sopenharmony_ci clocks = <&clk IMX8MM_CLK_NOC>; 8062306a36Sopenharmony_ci #interconnect-cells = <1>; 8162306a36Sopenharmony_ci fsl,ddrc = <&ddrc>; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci operating-points-v2 = <&noc_opp_table>; 8462306a36Sopenharmony_ci noc_opp_table: opp-table { 8562306a36Sopenharmony_ci compatible = "operating-points-v2"; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci opp-133333333 { 8862306a36Sopenharmony_ci opp-hz = /bits/ 64 <133333333>; 8962306a36Sopenharmony_ci }; 9062306a36Sopenharmony_ci opp-800000000 { 9162306a36Sopenharmony_ci opp-hz = /bits/ 64 <800000000>; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci }; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci ddrc: memory-controller@3d400000 { 9762306a36Sopenharmony_ci compatible = "fsl,imx8mm-ddrc", "fsl,imx8m-ddrc"; 9862306a36Sopenharmony_ci reg = <0x3d400000 0x400000>; 9962306a36Sopenharmony_ci clock-names = "core", "pll", "alt", "apb"; 10062306a36Sopenharmony_ci clocks = <&clk IMX8MM_CLK_DRAM_CORE>, 10162306a36Sopenharmony_ci <&clk IMX8MM_DRAM_PLL>, 10262306a36Sopenharmony_ci <&clk IMX8MM_CLK_DRAM_ALT>, 10362306a36Sopenharmony_ci <&clk IMX8MM_CLK_DRAM_APB>; 10462306a36Sopenharmony_ci }; 105