1 /* 2 * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 #ifndef __PLD_COMMON_I_H__ 21 #define __PLD_COMMON_I_H__ 22 23 #include "pld_common.h" 24 25 struct dev_node { 26 struct device *dev; 27 struct device *ifdev; 28 struct list_head list; 29 enum pld_bus_type bus_type; 30 }; 31 32 struct pld_context { 33 struct pld_driver_ops *ops; 34 spinlock_t pld_lock; 35 struct list_head dev_list; 36 uint32_t pld_driver_state; 37 uint8_t mode; 38 }; 39 40 /** 41 * pld_get_global_context() - Get global context of PLD 42 * 43 * Return: PLD global context 44 */ 45 struct pld_context *pld_get_global_context(void); 46 47 /** 48 * pld_add_dev() - Add dev node to global context 49 * @pld_context: PLD global context 50 * @dev: device 51 * @ifdev: interface device 52 * @type: Bus type 53 * 54 * Return: 0 for success 55 * Non zero failure code for errors 56 */ 57 int pld_add_dev(struct pld_context *pld_context, 58 struct device *dev, struct device *ifdev, 59 enum pld_bus_type type); 60 61 /** 62 * pld_del_dev() - Delete dev node from global context 63 * @pld_context: PLD global context 64 * @dev: device 65 * 66 * Return: void 67 */ 68 void pld_del_dev(struct pld_context *pld_context, 69 struct device *dev); 70 71 #endif 72