blob: cf4c7c95a170dadef26ed5dc5f53bd6981686413 [file] [log] [blame]
/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#if !defined(_IPA_EMULATION_STUBS_H_)
# define _IPA_EMULATION_STUBS_H_
# define clk_get(x, y) ((struct clk *) -(MAX_ERRNO+1))
# define clk_put(x) do { } while (0)
# define clk_prepare(x) do { } while (0)
# define clk_enable(x) do { } while (0)
# define clk_set_rate(x, y) do { } while (0)
# define clk_disable_unprepare(x) do { } while (0)
# define outer_flush_range(x, y)
# define __flush_dcache_area(x, y)
# define __cpuc_flush_dcache_area(x, y) __flush_dcache_area(x, y)
/* Point several API calls to these new EMULATION functions */
# define of_property_read_bool(np, propname) \
emulator_of_property_read_bool(NULL, propname)
# define of_property_read_u32(np, propname, out_value) \
emulator_of_property_read_u32(NULL, propname, out_value)
# define of_property_read_u32_array(np, propname, out_values, sz) \
emulator_of_property_read_u32_array(NULL, propname, out_values, sz)
# define platform_get_resource_byname(dev, type, name) \
emulator_platform_get_resource_byname(NULL, type, name)
# define of_property_count_elems_of_size(np, propname, elem_size) \
emulator_of_property_count_elems_of_size(NULL, propname, elem_size)
# define of_property_read_variable_u32_array( \
np, propname, out_values, sz_min, sz_max) \
emulator_of_property_read_variable_u32_array( \
NULL, propname, out_values, sz_min, sz_max)
# define resource_size(res) \
emulator_resource_size(res)
/**
* emulator_of_property_read_bool - Findfrom a property
* @np: device node used to find the property value. (not used)
* @propname: name of the property to be searched.
*
* Search for a property in a device node.
* Returns true if the property exists false otherwise.
*/
bool emulator_of_property_read_bool(
const struct device_node *np,
const char *propname);
int emulator_of_property_read_u32(
const struct device_node *np,
const char *propname,
u32 *out_value);
/**
* emulator_of_property_read_u32_array - Find and read an array of 32
* bit integers from a property.
*
* @np: device node used to find the property value. (not used)
* @propname: name of the property to be searched.
* @out_values: pointer to return value, modified only if return value is 0.
* @sz: number of array elements to read
*
* Search for a property in a device node and read 32-bit value(s) from
* it. Returns 0 on success, -EINVAL if the property does not exist,
* -ENODATA if property does not have a value, and -EOVERFLOW if the
* property data isn't large enough.
*
* The out_values is modified only if a valid u32 value can be decoded.
*/
int emulator_of_property_read_u32_array(
const struct device_node *np,
const char *propname,
u32 *out_values,
size_t sz);
/**
* emulator_platform_get_resource_byname - get a resource for a device
* by name
*
* @dev: platform device
* @type: resource type
* @name: resource name
*/
struct resource *emulator_platform_get_resource_byname(
struct platform_device *dev,
unsigned int type,
const char *name);
/**
* emulator_of_property_count_elems_of_size - Count the number of
* elements in a property
*
* @np: device node used to find the property value. (not used)
* @propname: name of the property to be searched.
* @elem_size: size of the individual element
*
* Search for a property and count the number of elements of size
* elem_size in it. Returns number of elements on success, -EINVAL if
* the property does not exist or its length does not match a multiple
* of elem_size and -ENODATA if the property does not have a value.
*/
int emulator_of_property_count_elems_of_size(
const struct device_node *np,
const char *propname,
int elem_size);
int emulator_of_property_read_variable_u32_array(
const struct device_node *np,
const char *propname,
u32 *out_values,
size_t sz_min,
size_t sz_max);
resource_size_t emulator_resource_size(
const struct resource *res);
#endif /* #if !defined(_IPA_EMULATION_STUBS_H_) */