On Fri, Dec 17, 2021 at 4:16 PM Tony Huang 黃懷厚 <tony.huang@xxxxxxxxxxx> wrote: > > On Thu, Dec 9, 2021 at 9:58 AM Tony Huang <tonyhuang.sunplus@xxxxxxxxx> > > wrote: > > > > > > IOP (IO Processor) embedded inside SP7021 which is used as Processor > > > for I/O control, RTC wake-up and cooperation with CPU & PMC in power > > > management purpose. > > > The IOP core is DQ8051, so also named IOP8051, it supports dedicated > > > JTAG debug pins which share with SP7021. > > > In standby mode operation, the power spec reach 400uA. > > > > > > Signed-off-by: Tony Huang <tonyhuang.sunplus@xxxxxxxxx> > > > > Thanks for the improvements, this again looks better than the previous version. > > I still have some minor comments, and there are a couple of details I have > > commented on before that would need to be addressed, but let's focus on the > > one main issue for now: > > > > The driver still doesn't actually /do/ anything: you load the firmware when the > > driver is loaded, and you shut it down when the driver is removed, but > > otherwise there is no way to interact with the iop. You had the miscdevice > > earlier, and you still register that, but there are no file_operations associated > > with it, so it still doesn't have any effect. > > > > In the original version you had a couple of user-side interfaces, for which Greg > > and I commented that they were not using the correct abstractions, and you > > still list them in the changelog text as "I/O control, RTC wake-up and > > cooperation with CPU & PMC in power management". > > > > If you want to make any progress with adding the driver, I'd say you should > > implement at least two of those high-level interfaces that interact with the > > respective kernel subsystems in order to show that the abstraction works. > > > > Q:"with respective kernel subsystems in order to show that the abstraction works." > May I ask you about repective kernel subsystem. > If I use the file_operation method > Provide user can read and write IOP(8051)'s register. > Is this a repective kernel subsystem? > if not > There are other driver code can give me reference - For gpio, there are lots of drivers in drivers/gpio/ - For RTC, there are drivers in drivers/rtc/ - For suspending the CPU core, there are drivers in drivers/cpuidle/ - For turning off the system, you can find drivers in drivers/power/reset/ Any of these drivers can interface with your kernel driver in various ways that avoid adding a custom miscdevice. Arnd