1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (C) 2024, KEBA Industrial Automation Gmbh */ 3 4 #ifndef _LINUX_MISC_KEBA_H 5 #define _LINUX_MISC_KEBA_H 6 7 #include <linux/auxiliary_bus.h> 8 9 struct i2c_board_info; 10 struct spi_board_info; 11 12 /** 13 * struct keba_i2c_auxdev - KEBA I2C auxiliary device 14 * @auxdev: auxiliary device object 15 * @io: address range of I2C controller IO memory 16 * @info_size: number of I2C devices to be probed 17 * @info: I2C devices to be probed 18 */ 19 struct keba_i2c_auxdev { 20 struct auxiliary_device auxdev; 21 struct resource io; 22 int info_size; 23 struct i2c_board_info *info; 24 }; 25 26 /** 27 * struct keba_spi_auxdev - KEBA SPI auxiliary device 28 * @auxdev: auxiliary device object 29 * @io: address range of SPI controller IO memory 30 * @info_size: number of SPI devices to be probed 31 * @info: SPI devices to be probed 32 */ 33 struct keba_spi_auxdev { 34 struct auxiliary_device auxdev; 35 struct resource io; 36 int info_size; 37 struct spi_board_info *info; 38 }; 39 40 /** 41 * struct keba_fan_auxdev - KEBA fan auxiliary device 42 * @auxdev: auxiliary device object 43 * @io: address range of fan controller IO memory 44 */ 45 struct keba_fan_auxdev { 46 struct auxiliary_device auxdev; 47 struct resource io; 48 }; 49 50 /** 51 * struct keba_batt_auxdev - KEBA battery auxiliary device 52 * @auxdev: auxiliary device object 53 * @io: address range of battery controller IO memory 54 */ 55 struct keba_batt_auxdev { 56 struct auxiliary_device auxdev; 57 struct resource io; 58 }; 59 60 /** 61 * struct keba_uart_auxdev - KEBA UART auxiliary device 62 * @auxdev: auxiliary device object 63 * @io: address range of UART controller IO memory 64 * @irq: number of UART controller interrupt 65 */ 66 struct keba_uart_auxdev { 67 struct auxiliary_device auxdev; 68 struct resource io; 69 unsigned int irq; 70 }; 71 72 #endif /* _LINUX_MISC_KEBA_H */ 73