1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2023 Cirrus Logic, Inc. and
4  *                    Cirrus Logic International Semiconductor Ltd.
5  */
6 
7 #ifndef __SDW_IRQ_H
8 #define __SDW_IRQ_H
9 
10 #include <linux/soundwire/sdw.h>
11 #include <linux/fwnode.h>
12 
13 #if IS_ENABLED(CONFIG_IRQ_DOMAIN)
14 
15 int sdw_irq_create(struct sdw_bus *bus,
16 		   struct fwnode_handle *fwnode);
17 void sdw_irq_delete(struct sdw_bus *bus);
18 void sdw_irq_create_mapping(struct sdw_slave *slave);
19 
20 #else /* CONFIG_IRQ_DOMAIN */
21 
sdw_irq_create(struct sdw_bus * bus,struct fwnode_handle * fwnode)22 static inline int sdw_irq_create(struct sdw_bus *bus,
23 				 struct fwnode_handle *fwnode)
24 {
25 	return 0;
26 }
27 
sdw_irq_delete(struct sdw_bus * bus)28 static inline void sdw_irq_delete(struct sdw_bus *bus)
29 {
30 }
31 
sdw_irq_create_mapping(struct sdw_slave * slave)32 static inline void sdw_irq_create_mapping(struct sdw_slave *slave)
33 {
34 }
35 
36 #endif /* CONFIG_IRQ_DOMAIN */
37 
38 #endif /* __SDW_IRQ_H */
39