TI SOC based PWM Subsystem Required properties: - compatible: Must be "ti,<soc>-pwmss". for am33xx - compatible = "ti,am33xx-pwmss"; for am4372 - compatible = "ti,am4372-pwmss","ti,am33xx-pwmss"; for dra746 - compatible = "ti,dra746-pwmss", "ti,am33xx-pwmss" - reg: physical base address and size of the registers map. - address-cells: Specify the number of u32 entries needed in child nodes. Should set to 1. - size-cells: specify number of u32 entries needed to specify child nodes size in reg property. Should set to 1. - ranges: describes the address mapping of a memory-mapped bus. Should set to physical address map of child's base address, physical address within parent's address space and length of the address map. For am33xx, 3 set of child register maps present, ECAP register space, EQEP register space, EHRPWM register space. Also child nodes should also populated under PWMSS DT node. Example: epwmss0: epwmss@48300000 { /* PWMSS for am33xx */ compatible = "ti,am33xx-pwmss"; reg = <0x48300000 0x10>; ti,hwmods = "epwmss0"; #address-cells = <1>; #size-cells = <1>; ranges = <0x48300100 0x48300100 0x80 /* ECAP */ 0x48300180 0x48300180 0x80 /* EQEP */ 0x48300200 0x48300200 0x80>; /* EHRPWM */ /* child nodes go here */ }; epwmss0: epwmss@48300000 { /* PWMSS for am4372 */ compatible = "ti,am4372-pwmss","ti,am33xx-pwmss" reg = <0x48300000 0x10>; ti,hwmods = "epwmss0"; #address-cells = <1>; #size-cells = <1>; ranges = <0x48300100 0x48300100 0x80 /* ECAP */ 0x48300180 0x48300180 0x80 /* EQEP */ 0x48300200 0x48300200 0x80>; /* EHRPWM */ /* child nodes go here */ }; epwmss0: epwmss@4843e000 { /* PWMSS for DRA7xx */ compatible = "ti,dra746-pwmss", "ti,am33xx-pwmss"; reg = <0x4843e000 0x30>; ti,hwmods = "epwmss0"; #address-cells = <1>; #size-cells = <1>; ranges; /* child nodes go here */ };