You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
4.8 KiB
159 lines
4.8 KiB
/*
|
|
* Copyright (c) Hisilicon Technologies Co., Ltd. 2021-2022. All rights reserved.
|
|
* Description: osal list
|
|
* Author: Hisilicon
|
|
* Create: 2021-12-16
|
|
*/
|
|
|
|
#ifndef __SOC_OSEXT_H__
|
|
#define __SOC_OSEXT_H__
|
|
|
|
#include "td_type.h"
|
|
#include "soc_osal.h"
|
|
#include "osal_list.h"
|
|
#include "osal_errno.h"
|
|
#ifdef __KERNEL__
|
|
#include <linux/module.h>
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif
|
|
|
|
/**
|
|
* @ingroup drval_dts
|
|
* @brief Find the node that matches compatible.
|
|
*
|
|
* @par Description:
|
|
* Find the node that matches compatible.
|
|
*
|
|
* @param compatible [in] The compatible to be matched.
|
|
*
|
|
* @return Return the node that matches compatible.
|
|
*
|
|
* @par Support System:
|
|
* linux liteos.
|
|
*/
|
|
void *drval_dts_get_start_node(const char *compatible);
|
|
|
|
/**
|
|
* @ingroup drval_dts
|
|
* @brief Find and read an array of 32 bit integers.
|
|
*
|
|
* @par Description:
|
|
* Find and read an array of 32 bit integers.
|
|
*
|
|
* @param compatible [in] Device node from which the property value is to be read.
|
|
* @param name [in] Name of the property to be searched.
|
|
* @param out_values [out] Pointer to return value, modified only if return value is not OSAL_FAILURE.
|
|
* @param num [in] Number of array elements to read.
|
|
* @param start_node [in] Device node to start searching, NULL is start means starting from the beginning.
|
|
*
|
|
* @attention
|
|
* The out_values is modified only if a valid u32 value can be decoded.
|
|
*
|
|
* @return Return the real len of array in success, otherwise return OSAL_FAILURE.
|
|
*
|
|
* @par Support System:
|
|
* linux liteos.
|
|
*/
|
|
int drval_dts_get_array_byname(const char *compatible, const char *name, unsigned int *out_values,
|
|
unsigned int num, void *start_node);
|
|
|
|
/**
|
|
* @ingroup drval_dts
|
|
* @brief Find from a property.
|
|
*
|
|
* @par Description:
|
|
* Search for a property in a device node.
|
|
*
|
|
* @param compatible [in] Device node from which the property value is to be read.
|
|
* @param name [in] Name of the property to be searched
|
|
* @param start_node [in] Device node to start searching, NULL is start means starting from the beginning.
|
|
*
|
|
* @return Returns true if the property exists, otherwise return false.
|
|
*
|
|
* @par Support System:
|
|
* linux.
|
|
*/
|
|
int drval_dts_get_bool_byname(const char *compatible, const char *name, void *start_node);
|
|
|
|
/**
|
|
* @ingroup drval_dts
|
|
* @brief Find and read a string from a property.
|
|
*
|
|
* @par Description:
|
|
* Find and read a string from a property.
|
|
*
|
|
* @param compatible [in] Device node from which the property value is to be read.
|
|
* @param name [in] Name of the property to be searched.
|
|
* @param out_string [out] Pointer to return value, modified only if return value is OSAL_SUCCESS.
|
|
* @param start_node [in] Device node to start searching, NULL is start means starting from the beginning.
|
|
*
|
|
* @attention
|
|
* The out_string pointer is modified only if a valid string can be decoded.
|
|
*
|
|
* @return OSAL_SUCCESS/OSAL_FAILURE.
|
|
*
|
|
* @par Support System:
|
|
* linux liteos.
|
|
*/
|
|
int drval_dts_get_string_byname(const char *compatible, const char *name, const char **out_string, void *start_node);
|
|
|
|
/**
|
|
* @ingroup drval_dts
|
|
* @brief Find and read an u32 from a property.
|
|
*
|
|
* @par Description:
|
|
* Find and read an u32 from a property.
|
|
*
|
|
* @param compatible [in] Device node from which the property value is to be read.
|
|
* @param name [in] Name of the property to be searched.
|
|
* @param out_values [out] Pointer to return value, modified only if return value is OSAL_SUCCESS.
|
|
* @param start_node [in] Device node to start searching, NULL is start means starting from the beginning.
|
|
*
|
|
* @attention
|
|
* The out_values is modified only if a valid u32 value can be decoded.
|
|
*
|
|
* @return OSAL_SUCCESS/OSAL_FAILURE.
|
|
*
|
|
* @par Support System:
|
|
* linux liteos.
|
|
*/
|
|
int drval_dts_get_u32_byname(const char *compatible, const char *name, unsigned int *out_value, void *start_node);
|
|
|
|
/**
|
|
* @ingroup drval_dts
|
|
* @brief Find and read a string from a multiple strings property.
|
|
*
|
|
* @par Description:
|
|
* Find and read a string from a multiple strings property.
|
|
*
|
|
* @param compatible [in] Device node from which the property value is to be read.
|
|
* @param name [in] Name of the property to be searched.
|
|
* @param index [in] Index of the string in the list of strings.
|
|
* @param out_string [out] pointer to null terminated return string, modified only if return value is OSAL_SUCCESS.
|
|
* @param start_node [in] Device node to start searching, NULL is start means starting from the beginning.
|
|
*
|
|
* @attention
|
|
* The out_string pointer is modified only if a valid string can be decoded.
|
|
*
|
|
* @return OSAL_SUCCESS/OSAL_FAILURE.
|
|
*
|
|
* @par Support System:
|
|
* linux.
|
|
*/
|
|
int drval_dts_get_string_index_byname(const char *compatible, const char *name, int index,
|
|
const char **out_string, void *start_node);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
#endif /* __SOC_OSEXT_H__ */
|