tmedicci commented on PR #11428:
URL: https://github.com/apache/nuttx/pull/11428#issuecomment-2536800038

   Hi @raiden00pl and @xiaoxiang781216, let's put into perspective about RMT:
   
   > My reasoning is that if it's in the common driver headers 
(include/nuttx/rmt), then it's upper-half part. So here is our difference :)
   
   We can move it to `arch` folder. It's used by both xtensa and RISC-V.
   
   > RMT upper-half itself seems to be wrong, as it's architecture specific 
driver.
   
   It isn't, it's used by either RISC-V and xtensa device with the RMT 
peripheral.
   
   > ESP architecture logic should implement RMT_COMMON and then based on 
RMT_COMMON there should be lower-half implementation for rc/lirc_dev.c and 
WS2818_UPPER.
   
   We did this exactly the way you described for WS2812 upper-half. We didn't 
implement it for RC, but we encourage community to do it (and we can help with 
testing and validation). Then, I agree that we could even remove the RMT 
upper-half driver (`nuttx/drivers/rmt/rmtchar.c`) because it isn't coupled with 
the lower-half implementation.
   
   > The user can't write a general application to control the hardware come 
from different provider if these key elements doesn't catch in the design.
   
   I agree that this is partially true for the RMT peripheral, but users can 
move between different devices/architectures (from ESP32 to ESP32-C3, for 
instance). About WS2812, this isn't true: the same application 
(https://github.com/apache/nuttx-apps/tree/master/examples/ws2812, for 
instance) can be used by any chip/arch/vendor that implements the driver.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to