# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwlock/ti,omap-hwspinlock.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI HwSpinlock for OMAP and K3 based SoCs

maintainers:
  - Suman Anna <s-anna@ti.com>

properties:
  compatible:
    enum:
      - ti,omap4-hwspinlock  # for OMAP44xx, OMAP54xx, AM33xx, AM43xx, DRA7xx SoCs
      - ti,am64-hwspinlock   # for K3 AM64x SoCs
      - ti,am654-hwspinlock  # for K3 AM65x, J721E and J7200 SoCs

  reg:
    maxItems: 1

  "#hwlock-cells":
    const: 1
    description: |
      The OMAP hwspinlock users will use a 0-indexed relative hwlock number as
      the argument specifier value for requesting a specific hwspinlock within
      a hwspinlock bank.

      Please look at the generic hwlock binding for usage information for
      consumers, "Documentation/devicetree/bindings/hwlock/hwlock.txt"

required:
  - compatible
  - reg
  - "#hwlock-cells"

additionalProperties: false

examples:

  - |
    /* OMAP4 SoCs */
    hwspinlock: spinlock@4a0f6000 {
        compatible = "ti,omap4-hwspinlock";
        reg = <0x4a0f6000 0x1000>;
        #hwlock-cells = <1>;
    };

  - |
    / {
        /* K3 AM65x SoCs */
        model = "Texas Instruments K3 AM654 SoC";
        compatible = "ti,am654-evm", "ti,am654";
        #address-cells = <2>;
        #size-cells = <2>;

        bus@100000 {
            compatible = "simple-bus";
            #address-cells = <2>;
            #size-cells = <2>;
            ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
                     <0x00 0x30800000 0x00 0x30800000 0x00 0x0bc00000>; /* Main NavSS */

            bus@30800000 {
                compatible = "simple-mfd";
                #address-cells = <2>;
                #size-cells = <2>;
                ranges = <0x00 0x30800000 0x00 0x30800000 0x00 0x0bc00000>;

                spinlock@30e00000 {
                    compatible = "ti,am654-hwspinlock";
                    reg = <0x00 0x30e00000 0x00 0x1000>;
                    #hwlock-cells = <1>;
                };
            };
        };
    };
