Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


products:sbc:common:applications:gpio:pwm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:sbc:common:applications:gpio:pwm [2024/08/06 08:35]
nick
products:sbc:common:applications:gpio:pwm [2026/09/15 03:25] (current)
nick [Control PWM]
Line 8: Line 8:
  
 |         ^  PWM           ^  PIN  ^  GPIO name      ^  DT overlay node  ^  Device node              ^ |         ^  PWM           ^  PIN  ^  GPIO name      ^  DT overlay node  ^  Device node              ^
-^  VIM1   |  ''PWM_AO_A''  |  35   |  ''GPIOAO_3''   |  ''pwm_ao_a''     |  /sys/class/pwm/pwmchip4  | +^  VIM1   |  ''PWM_AO_A''  |  35   |  ''GPIOAO_3''   |  ''pwm_ao_a''     |/sys/class/pwm/pwmchip4  | 
-^  VIM2   |  ''PWM_D''     |  35   |  ''GPIODV_28''  |  ''pwm_d''        |  /sys/class/pwm/pwmchip1  | +^  VIM2   |  ''PWM_D''     |  35   |  ''GPIODV_28''  |  ''pwm_d''        |/sys/class/pwm/pwmchip1  | 
-^  VIM3   |  ''PWM_F''     |  35   |  ''GPIOH_5''    |  ''pwm_f''        |  /sys/class/pwm/pwmchip4  | +^  VIM3   |  ''PWM_F''     |  35   |  ''GPIOH_5''    |  ''pwm_f''        |/sys/class/pwm/pwmchip4  | 
-^  VIM3L  |  ''PWM_F''     |  35   |  ''GPIOH_5''    |  ''pwm_f''        | /sys/class/pwm/pwmchip0   | +^  VIM3L  |  ''PWM_F''     |  35   |  ''GPIOH_5''    |  ''pwm_f''        |/sys/class/pwm/pwmchip0   | 
-^  VIM4   |  ''PWM_F''     |  35   |  ''GPIOY_8''    |  ''pwm_f''        |  /sys/class/pwm/pwmchip4  | +^  VIM4   |  ''PWM_F''     |  35   |  ''GPIOY_8''    |  ''pwm_f''        |/sys/class/pwm/pwmchip4  | 
-^  VIM1S  |  ''PWM_F''     |  35   |  ''GPIOZ_6''    |  ''pwm_f''        |  /sys/class/pwm/pwmchip0  |+^  VIM1S  |  ''PWM_F''     |  35   |  ''GPIOZ_6''    |  ''pwm_f''        |/sys/class/pwm/pwmchip0  | 
 +^  VIM-5  |  ''PWM_J''     |  35   |  ''GPIOY_5''    |  ''pwm_j''        |Not fixed, using the below command to detect  | 
 + 
 +**VIM 5:** 
 +```shell 
 +$ set -- /sys/bus/platform/devices/fe058400.pwm/pwm/pwmchip* 
 +$ PWM_J=$1 
 +$ echo $PWM_J 
 +``` 
  
  
Line 123: Line 132:
 device  export  npwm  power  subsystem  uevent  unexport device  export  npwm  power  subsystem  uevent  unexport
 ``` ```
 +<tabbox VIM-5>
 +
 +Edit ''/boot/dtb/amlogic/kvim-5.dtb.overlay.env'' to add pwm node to ''fdt_overlays'' node if it doesn't exist.
 +
 +You need to add ''pwm_j'' to node ''fdt_overlays'' if it doesn't exist to enable ''PWM_J''.
 +
 +```shell
 +fdt_overlays=pwm_j
 +
 +```
 +
 +After reboot, you will see the pwm device node.
 +
 +```shell
 +$ set -- /sys/bus/platform/devices/fe058400.pwm/pwm/pwmchip*
 +$ PWM_J=$1
 +$ ls $PWM_J
 +device  export  npwm  power  subsystem  uevent  unexport
 +```
 +
 </tabbox> </tabbox>
  
Line 132: Line 161:
 The ''PWM'' function is disabled by default, you need to modify the dts to enable it. The ''PWM'' function is disabled by default, you need to modify the dts to enable it.
  
-```+```diff
 diff --git a/arch/arm64/boot/dts/amlogic/kvim4.dts b/arch/arm64/boot/dts/amlogic/kvim4.dts diff --git a/arch/arm64/boot/dts/amlogic/kvim4.dts b/arch/arm64/boot/dts/amlogic/kvim4.dts
 --- a/arch/arm64/boot/dts/amlogic/kvim4.dts --- a/arch/arm64/boot/dts/amlogic/kvim4.dts
Line 175: Line 204:
 The ''PWM'' function is disabled by default, you need to modify the dts to enable it. The ''PWM'' function is disabled by default, you need to modify the dts to enable it.
  
-```+```diff
 --- a/arch/arm64/boot/dts/amlogic/kvim1s.dts --- a/arch/arm64/boot/dts/amlogic/kvim1s.dts
 +++ b/arch/arm64/boot/dts/amlogic/kvim1s.dts +++ b/arch/arm64/boot/dts/amlogic/kvim1s.dts
Line 223: Line 252:
 ``` ```
  
-<tabbox VIM4/4N with 5.15 kernel> +<tabbox VIM-5> 
  
 ```shell ```shell
-echo 1 | sudo tee /sys/class/pwm/pwmchip12/export +set -- /sys/bus/platform/devices/fe058400.pwm/pwm/pwmchip* 
-echo 1000000 | sudo tee /sys/class/pwm/pwmchip12/pwm1/period +PWM_J=$1 
-echo 500000 | sudo tee /sys/class/pwm/pwmchip12/pwm1/duty_cycle +echo 0 | sudo tee "$PWM_J"/export 
-echo 1 | sudo tee /sys/class/pwm/pwmchip0/pwm12/enable+echo 1000000 | sudo tee "$PWM_J"/pwm0/period 
 +echo 500000 | sudo tee "$PWM_J"/pwm0/duty_cycle 
 +echo 1 | sudo tee "$PWM_J"/pwm0/enable
 ``` ```
  
Line 256: Line 287:
 echo 0 | sudo tee /sys/class/pwm/pwmchip0/pwm1/enable echo 0 | sudo tee /sys/class/pwm/pwmchip0/pwm1/enable
 ``` ```
- +<tabbox VIM-5> 
-<tabbox VIM4/4N with 5.15 kernel> +
 ```shell ```shell
-echo 0 | sudo tee /sys/class/pwm/pwmchip12/pwm1/enable+set -- /sys/bus/platform/devices/fe058400.pwm/pwm/pwmchip* 
 +PWM_J=$1 
 +echo 0 | sudo tee "$PWM_J"/pwm0/enable 
 +``` 
 +<tabbox VIM3L/1S>  
 +```shell 
 +echo 0 | sudo tee /sys/class/pwm/pwmchip0/pwm1/enable
 ``` ```
  
Last modified: 2024/08/06 08:35 by nick