Dear Arnd: > > >> 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> > > >> --- > > >> Changes in v4: > > >> - Addressed comments from Arnd Bergmann. > > > > >I don't think you did: I asked you specifically to add code to > > >interact with the existing in-kernel interfaces to use the > > >functionality provided by the device. Pick any (at least two) > > >subsystems and add support, but leave out any custom user space > > >interfaces (miscdevice, debugfs, sysfs, ...) for the moment. > > > > > > > > 1. IOP can run sp_iop_platform_driver_shudown() through the poweroff > > command and the kernel. Perform system power-off actions. > > Do you mean that this method a) cleanly shuts down the iop before the system > is powered down, or b) the driver_shutdown() callback is used to initiate the > powerdown of the system itself? > > In case of a) I would not count that as exposing functionality, what you do here > is just part of any driver. If instead you are trying to use b), this is the wrong > way of doing it, see drivers/power/reset/ for examples of how to do it right. > > > 2. Wake up the system by relying on the 8051 internal RTC wake-up > > mechanism and external GPIO input signals to wake up. > > I think those should be exposed with drivers/rtc for the RTC and drivers/gpio/ > for the GPIO driver, and then you can use the device tree to configure which > GPIO to use as a wakeup and how it's connected to the RTC. > I have a question to ask you: There are two ways to wake up the Linux kernel system in 8051. 1)RTC wakeup: The SP7021 system mounts the RTC device driver. I set the RTC wake-up time by type commands in command line. Example: echo 0 > /sys/class/rtc/rtc0/wakealarm && nnn=`date '+%s'` && echo $nnn && nnn=`expr $nnn + 10` && echo $nnn > /sys/class/rtc/rtc0/wakealarm When the linux kernel system has no power. 8051 can read RTC resgister and receive RTC wakeup interrupt. Do I need to add RTC subsystem functiona to the IOP code? 2)GPIO wakeup: According to your suggestion I use of_get_name_gpio() to get GPIO number from device tree during the IOP probe process. Pass it to 8051 for use. Thanks