xref: /OK3568_Linux_fs/kernel/drivers/memory/of_memory.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * OpenFirmware helpers for memory drivers
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (C) 2012 Texas Instruments, Inc.
6*4882a593Smuzhiyun  * Copyright (C) 2020 Krzysztof Kozlowski <krzk@kernel.org>
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifndef __LINUX_MEMORY_OF_REG_H
10*4882a593Smuzhiyun #define __LINUX_MEMORY_OF_REG_H
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #if defined(CONFIG_OF) && defined(CONFIG_DDR)
13*4882a593Smuzhiyun const struct lpddr2_min_tck *of_get_min_tck(struct device_node *np,
14*4882a593Smuzhiyun 					    struct device *dev);
15*4882a593Smuzhiyun const struct lpddr2_timings *of_get_ddr_timings(struct device_node *np_ddr,
16*4882a593Smuzhiyun 						struct device *dev,
17*4882a593Smuzhiyun 						u32 device_type, u32 *nr_frequencies);
18*4882a593Smuzhiyun const struct lpddr3_min_tck *of_lpddr3_get_min_tck(struct device_node *np,
19*4882a593Smuzhiyun 						   struct device *dev);
20*4882a593Smuzhiyun const struct lpddr3_timings *
21*4882a593Smuzhiyun of_lpddr3_get_ddr_timings(struct device_node *np_ddr,
22*4882a593Smuzhiyun 			  struct device *dev, u32 device_type, u32 *nr_frequencies);
23*4882a593Smuzhiyun #else
24*4882a593Smuzhiyun static inline const struct lpddr2_min_tck
of_get_min_tck(struct device_node * np,struct device * dev)25*4882a593Smuzhiyun 	*of_get_min_tck(struct device_node *np, struct device *dev)
26*4882a593Smuzhiyun {
27*4882a593Smuzhiyun 	return NULL;
28*4882a593Smuzhiyun }
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun static inline const struct lpddr2_timings
of_get_ddr_timings(struct device_node * np_ddr,struct device * dev,u32 device_type,u32 * nr_frequencies)31*4882a593Smuzhiyun 	*of_get_ddr_timings(struct device_node *np_ddr, struct device *dev,
32*4882a593Smuzhiyun 	u32 device_type, u32 *nr_frequencies)
33*4882a593Smuzhiyun {
34*4882a593Smuzhiyun 	return NULL;
35*4882a593Smuzhiyun }
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun static inline const struct lpddr3_min_tck
of_lpddr3_get_min_tck(struct device_node * np,struct device * dev)38*4882a593Smuzhiyun 	*of_lpddr3_get_min_tck(struct device_node *np, struct device *dev)
39*4882a593Smuzhiyun {
40*4882a593Smuzhiyun 	return NULL;
41*4882a593Smuzhiyun }
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun static inline const struct lpddr3_timings
of_lpddr3_get_ddr_timings(struct device_node * np_ddr,struct device * dev,u32 device_type,u32 * nr_frequencies)44*4882a593Smuzhiyun 	*of_lpddr3_get_ddr_timings(struct device_node *np_ddr,
45*4882a593Smuzhiyun 	struct device *dev, u32 device_type, u32 *nr_frequencies)
46*4882a593Smuzhiyun {
47*4882a593Smuzhiyun 	return NULL;
48*4882a593Smuzhiyun }
49*4882a593Smuzhiyun #endif /* CONFIG_OF && CONFIG_DDR */
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun #endif /* __LINUX_MEMORY_OF_REG_ */
52