On Mon, Sep 26, 2022 at 8:57 AM Wei Yongjun <weiyongjun1@xxxxxxxxxx> wrote: > > > > On 2022/9/1 0:08, Bartosz Golaszewski wrote: > > On Fri, Aug 26, 2022 at 9:44 AM Wei Yongjun <weiyongjun1@xxxxxxxxxx> wrote: > >> > >> This series allow gpio simulator be used as interrupt controller, the use > >> case is mockup some device which using GPIO as interrupt controller, such > >> as mcp2515 CAN device. With the dts [1], we can mockup a mcp2515 device, > >> and trigger irq by following commands: > >> > >> $ echo pull-down > /sys/bus/gpio/devices/gpiochip0/sim_gpio0/pull > >> $ echo pull-up > /sys/bus/gpio/devices/gpiochip0/sim_gpio0/pull > >> > >> > >> --[1]--------------------------------------------------------- > >> /dts-v1/; > >> > >> #include <dt-bindings/interrupt-controller/irq.h> > >> > >> / { > >> clk24m: clk24m { > >> compatible = "fixed-clock"; > >> clock-output-names = "clk24m"; > >> clock-frequency = <24000000>; > >> #clock-cells = <0>; > >> }; > >> > >> gpio-sim { > >> compatible = "gpio-simulator"; > >> > >> bank0: bank0 { > >> gpio-controller; > >> #gpio-cells = <2>; > >> ngpios = <16>; > >> > >> interrupt-controller; > >> #interrupt-cells = <2>; > >> > >> line_b-hog { > >> gpio-hog; > >> gpios = <0 1>; > >> input; > >> line-name = "irq-sim"; > >> }; > > > > Why do you need this hog? The GPIO will be marked as requested once > > the interrupt is taken by the driver. > > Sorry for reply later. > > It seems that only if driver request gpio with fwnode_gpiod_get_index() > marks GPIO as request one. > > If driver using request_threaded_irq() request one irq, the requested > status will not be marked. We need to use hog or request by userspace > to mark as requested. > Right, of course. Thanks. > > > >> }; > >> }; > >> > >> spi: spi { > >> compatible = "spi-mockup"; > >> > >> #address-cells = <1>; > >> #size-cells = <0>; > >> > >> can0: can@1 { > >> compatible = "microchip,mcp2515"; > >> reg = <1>; > >> clocks = <&clk24m>; > >> interrupt-parent = <&bank0>; > >> interrupts = <0 IRQ_TYPE_EDGE_BOTH>; > >> }; > >> > >> }; > >> }; > >> ------------------------------><----------------------------- > >> > >> Wei Yongjun (2): > >> genirq/irq_sim: Allow both one and two cell bindings > >> gpio: sim: make gpio simulator can be used as interrupt controller > >> > >> drivers/gpio/gpio-sim.c | 2 +- > >> kernel/irq/irq_sim.c | 1 + > >> 2 files changed, 2 insertions(+), 1 deletion(-) > >> > >> -- > >> 2.34.1 > >> > > > > Can you add some info about this to the documentation? > Ok, I'll wait for v2. And you can drop the -next prefix too, it doesn't fix anything in next. Bart > Will do that > > Thanks, > Wei Yongjun