# Copyright 2023 NXP
# SPDX-License-Identifier: Apache-2.0

description: |
  NXP S32 Enhanced Modular IO SubSystem (eMIOS) node for S32 SoCs.
  eMIOS provides independent unified channels (UCs), some of channels
  have internal counter that either can be used independently or used
  as a reference timebase (master bus) for other channels.

compatible: "nxp,s32-emios"

include: [base.yaml]

properties:
  reg:
    required: true

  clock-divider:
    type: int
    required: true
    description: |
      Clock divider value for the global prescaler. Could be in range [1 ... 256]

child-binding:
  child-binding:
    description: |
      Node for eMIOS master bus. Each channel is capable to become a master bus has
      a node defined in root devicetree but is disabled by default. To allow using
      the master bus, the devicetree node should be enabled and dts properties
      should be configured as required by application.

      For example, to enable bus A of eMIOS instance 0 that can be used as timebase
      for channels from 0 to 22, freezed in debug mode:
        master_bus {
          emios0_bus_a: emios0_bus_a {
            channel = <23>;
            bus-type = "BUS_A";
            channel-mask = <0x07FFFFF>;
            prescaler = <1>;
            period = <65535>;
            mode = <MCB_UP_COUNTER>;
            freeze;
            status = "okay";
          };
        };

    properties:
      channel:
        type: int
        required: true
        description: |
          Channel identifier for the master bus.

      channel-mask:
        type: int
        required: true
        description: |
          A channel mask for channels that by hardware design can use this master bus
          as timebase for the operation, lsb is channel 0. The mask bit for this master bus
          must always 0 because a master bus should not do other thing than a base timer.

      prescaler:
        type: int
        required: true
        description: |
          Clock divider value for internal UC prescaler.
          Clock for internal counter = (eMIOS clock / global prescaler) / internal prescaler.
        enum: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

      bus-type:
        type: string
        required: true
        description: |
          Master bus type.
        enum:
          - "BUS_A"
          - "BUS_B"
          - "BUS_C"
          - "BUS_D"
          - "BUS_E"
          - "BUS_F"

      mode:
        type: string
        required: true
        description: |
          Master bus mode.
        enum:
          - "MCB_UP_COUNTER"
          - "MCB_UP_DOWN_COUNTER"

      period:
        type: int
        required: true
        description: |
          Default period (in ticks) for master bus at boot time. This determines PWM period
          for channels use this bus as reference timebase. Could be in range [2 ... 65535]

      freeze:
        type: boolean
        description: Freeze internal counter when the chip enters Debug mode.
