Other Parts Discussed in Thread: REMOTI
工具/软件:Linux
你(们)好
我有一个运行 Linux 4.45 PSDK 003的定制板
我从内核4.8反向移植了 PWM 驱动程序
elixir.free-electrons.com/.../pwm-omap-dmtimer.c
在 deviceTree 中添加了两个 PWM 器件、两者都出现在/sys/class/pwm 下
CTRL_TRIGGER_PWM:dmtimer_pmW@2{ compatible ="ti、omap-dmtimer-pwm"; ti、计时器=<&timer2>; #pwm-cells =<3>; pinctrl-names ="default"; pinctrl-0 =<&dmtimer2_pines>; }; CTRL_LED_PWM:dmtimer_pmw@3{ compatible ="ti、omap-dmtimer-pwm"; ti、timers =<&timer3>; #pwm-cells =<3>; pinctrl-names ="default"; pinctrl-0 =<&dmtimer3_PINs>; };
/*触发 PWM */
时间2{(&T)
状态="正常";
TI、定时器-PWM;
};
/* LED 控制 PWM */
时间器3{(&T)
状态="正常";
TI、定时器-PWM;
};
我可以使用成功配置和激活其中一个
echo 0 >/sys/class/pwm/pwmchip1/export
echo 16000000 >/sys/class/pwm/pwmchip1/pwm0/period
echo 8000000 >/sys/class/pwm/pwmchip1/pwm0/duty_cycle
Echo 1 >/sys/class/pwm/pwmchip1/pwm0/enable
但一旦启用、另一个无法配置、内核错误为:
[110.890842]------ [在此处剪切]-----
[110.895495]警告:CPU:0 PID:571 at /mnt/yocto/yocto_repo/build/arago-tmp-external-linaro-toolchain/work-shared/delphi-jlr-isp-proto/kernel-source/drivers/bus/omap_l3_noc.c:147 L3_interrupt_handler+0x24c/0x350 ()
[110.914696] 44000000.OCP:L3自定义错误:主 MPU 目标 L4_PER1_P3 (空闲):在功能访问期间以监控器模式进行数据访问
[110.926829]链接的模块:xhci_hcd usbcore dwc3 UDC_CORE ECB SHA512_generic SHA512_arm SHA256_generic HMAC MD5 SHA1_generic PWM_OMAP-dmtimer SHA1_ARM_SHA1_arm dwti_driver_tirte_vapor_g_vapor_remote_remote_remote_vapor_apor_pr_prue_remote_remote_remote_vapote_remote_remoti_pr_pr_prue_te_remoti_prue_vapote_remote_remoti_pruap_prue_remote_remoti_pr_pruapote_remote_remoti_pr_
[110.960160] CPU:0 PID:571 Comm:sh 污染:G O 4.4.4.45-g89944627d5 #4
[110.967933]硬件名称:通用 DRA72X (平展器件树)
[110.974061][ ](展开回扫)从[ ](show_stack+0x10/0x14)
[110.981844][ ](show_stack)从[ ](WARN_RASPEK_COMMON + 0x80/0xac)
[110.989972][ ](warn_slowpath_common)、来自[ ](WARN_RASPH_FMt+0x30/0x40)
[110.998713][ ](warn_slowpath_fmt)、来自[ ](L3_INTERRUPT_Handler+0x24c/0x350)
[111.007626][ ](L3_interrupt_handler)、来自[ ](handle_irq_event_perpu + 0x9C/0x15c)
[111.016972][ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x38/0x5c)
[111.025884][ ](handle_irq_event)从[ ](handle_fasteoi_IRQ+0xe0/0x1a8)
[111.034446][ ](handle_fasteoi_IRQ)、来自[ ](generic_handle_IRQ+0x24/0x34)
[111.043095][ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x70/0xdc)
[111.051830][ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x38/0x64)
[111.060216][ ](GIC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x44/0x7c)
[111.067727]异常堆栈(0xce51de20至0xce51de68)
[111.072799] de20:00000000 c0857050 00000000 d20abe80 600e0013 d3f3d0a0 d3f3d0a0 600e0013
[111.0810101010]de40:ce626680 cefb430c ce51df88 00000000 00000005 ce51de70 c006a7b8 c06a48f0
[111.089219] de60:200e0013 ffffff
[111.092727][ ](_IRQ_Svc)从[ ](_raW_spin_unlock_irqrestore+0x70/0x74)
[111.101382][ ](_raW_spin_unlock_irqrestore)从[ ](__pm_runtime_idle+0x78/0x9C)
[111.110736][ ](__pm_runtime_idle)从[ ](PWM_OMAP-dmtimer_start+0x54/0x74 [PWM_OMAP-dmtimer])
[111.121335][ ](PWM_OMAP-dmtimer_start [PWM_OMAP-dmtimer])、来自[ ](PWM_OMAP-dmtimer_enable+0x20/0x30 [PWM_OMAP-dmtimer])
[111.134091][ ](PWM_OMAP-dmtimer_enable [PWM_OMAP-dmtimer])、来自[ ](PWM_ENABLE+0x68/0x94)
[111.144138][ ](PWM_ENABLE)从[ ](enable_store+0x48/0x78)
[111.1569][ ](ENABLE_STORE)从[ ](kernfs_fop_write+bbc/0x19c)
[111.159608][ ](kernfs_fop_write)、来自[ ](_vfs_write+0x1c/0xd8)
[111.167473][ ](_vfs_write)、来自[ ](vfs_write+0x90/0x16c)
[111.174815][ ](vfs_write)从[ ](SYS_WRITE+0x44/0x9C)
[111.1818181897][ ](sys_write)从[ ](RET_FAST_SYSCALL+0x0/0x1c)
[111.189495]-[结束线迹97a20d96d8043ec3 ]---
从 dmtimer.c 调用 pm_runtime_disable()时出现问题
你有什么建议吗?
此致