add irq support