1*2d877d06SCharles Keepax /* SPDX-License-Identifier: GPL-2.0 */ 2*2d877d06SCharles Keepax /* 3*2d877d06SCharles Keepax * The MIPI SDCA specification is available for public downloads at 4*2d877d06SCharles Keepax * https://www.mipi.org/mipi-sdca-v1-0-download 5*2d877d06SCharles Keepax * 6*2d877d06SCharles Keepax * Copyright (C) 2025 Cirrus Logic, Inc. and 7*2d877d06SCharles Keepax * Cirrus Logic International Semiconductor Ltd. 8*2d877d06SCharles Keepax */ 9*2d877d06SCharles Keepax 10*2d877d06SCharles Keepax #ifndef __SDCA_CLASS_H__ 11*2d877d06SCharles Keepax #define __SDCA_CLASS_H__ 12*2d877d06SCharles Keepax 13*2d877d06SCharles Keepax #include <linux/completion.h> 14*2d877d06SCharles Keepax #include <linux/mutex.h> 15*2d877d06SCharles Keepax #include <linux/workqueue.h> 16*2d877d06SCharles Keepax 17*2d877d06SCharles Keepax struct device; 18*2d877d06SCharles Keepax struct regmap; 19*2d877d06SCharles Keepax struct sdw_slave; 20*2d877d06SCharles Keepax struct sdca_function_data; 21*2d877d06SCharles Keepax 22*2d877d06SCharles Keepax struct sdca_class_drv { 23*2d877d06SCharles Keepax struct device *dev; 24*2d877d06SCharles Keepax struct regmap *dev_regmap; 25*2d877d06SCharles Keepax struct sdw_slave *sdw; 26*2d877d06SCharles Keepax 27*2d877d06SCharles Keepax struct sdca_function_data *functions; 28*2d877d06SCharles Keepax struct sdca_interrupt_info *irq_info; 29*2d877d06SCharles Keepax 30*2d877d06SCharles Keepax struct mutex regmap_lock; 31*2d877d06SCharles Keepax struct work_struct boot_work; 32*2d877d06SCharles Keepax struct completion device_attach; 33*2d877d06SCharles Keepax 34*2d877d06SCharles Keepax bool attached; 35*2d877d06SCharles Keepax }; 36*2d877d06SCharles Keepax 37*2d877d06SCharles Keepax #endif /* __SDCA_CLASS_H__ */ 38