Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/interconnect/fsl,imx8m-noc.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Generic i.MX bus frequency device
0008 
0009 maintainers:
0010   - Peng Fan <peng.fan@nxp.com>
0011 
0012 description: |
0013   The i.MX SoC family has multiple buses for which clock frequency (and
0014   sometimes voltage) can be adjusted.
0015 
0016   Some of those buses expose register areas mentioned in the memory maps as GPV
0017   ("Global Programmers View") but not all. Access to this area might be denied
0018   for normal (non-secure) world.
0019 
0020   The buses are based on externally licensed IPs such as ARM NIC-301 and
0021   Arteris FlexNOC but DT bindings are specific to the integration of these bus
0022   interconnect IPs into imx SOCs.
0023 
0024 properties:
0025   compatible:
0026     oneOf:
0027       - items:
0028           - enum:
0029               - fsl,imx8mm-nic
0030               - fsl,imx8mn-nic
0031               - fsl,imx8mp-nic
0032               - fsl,imx8mq-nic
0033           - const: fsl,imx8m-nic
0034       - items:
0035           - enum:
0036               - fsl,imx8mm-noc
0037               - fsl,imx8mn-noc
0038               - fsl,imx8mp-noc
0039               - fsl,imx8mq-noc
0040           - const: fsl,imx8m-noc
0041       - const: fsl,imx8m-nic
0042 
0043   reg:
0044     maxItems: 1
0045 
0046   clocks:
0047     maxItems: 1
0048 
0049   operating-points-v2: true
0050   opp-table: true
0051 
0052   fsl,ddrc:
0053     $ref: "/schemas/types.yaml#/definitions/phandle"
0054     description:
0055       Phandle to DDR Controller.
0056 
0057   '#interconnect-cells':
0058     description:
0059       If specified then also act as an interconnect provider. Should only be
0060       set once per soc on the main noc.
0061     const: 1
0062 
0063 required:
0064   - compatible
0065   - clocks
0066 
0067 additionalProperties: false
0068 
0069 examples:
0070   - |
0071     #include <dt-bindings/clock/imx8mm-clock.h>
0072     #include <dt-bindings/interconnect/imx8mm.h>
0073     #include <dt-bindings/interrupt-controller/arm-gic.h>
0074 
0075     noc: interconnect@32700000 {
0076         compatible = "fsl,imx8mm-noc", "fsl,imx8m-noc";
0077         reg = <0x32700000 0x100000>;
0078         clocks = <&clk IMX8MM_CLK_NOC>;
0079         #interconnect-cells = <1>;
0080         fsl,ddrc = <&ddrc>;
0081 
0082         operating-points-v2 = <&noc_opp_table>;
0083         noc_opp_table: opp-table {
0084             compatible = "operating-points-v2";
0085 
0086             opp-133333333 {
0087                 opp-hz = /bits/ 64 <133333333>;
0088             };
0089             opp-800000000 {
0090                 opp-hz = /bits/ 64 <800000000>;
0091             };
0092         };
0093     };
0094 
0095     ddrc: memory-controller@3d400000 {
0096         compatible = "fsl,imx8mm-ddrc", "fsl,imx8m-ddrc";
0097         reg = <0x3d400000 0x400000>;
0098         clock-names = "core", "pll", "alt", "apb";
0099         clocks = <&clk IMX8MM_CLK_DRAM_CORE>,
0100                  <&clk IMX8MM_DRAM_PLL>,
0101                  <&clk IMX8MM_CLK_DRAM_ALT>,
0102                  <&clk IMX8MM_CLK_DRAM_APB>;
0103     };