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. > }; > }; > > 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? Otherwise looks good. Bart