xref: /openbmc/linux/drivers/memory/of_memory.h (revision 38322cf4)
12874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
2e6b42eb6SAneesh V /*
3e6b42eb6SAneesh V  * OpenFirmware helpers for memory drivers
4e6b42eb6SAneesh V  *
5e6b42eb6SAneesh V  * Copyright (C) 2012 Texas Instruments, Inc.
6df307273SKrzysztof Kozlowski  * Copyright (C) 2020 Krzysztof Kozlowski <krzk@kernel.org>
7e6b42eb6SAneesh V  */
8e6b42eb6SAneesh V 
9e6b42eb6SAneesh V #ifndef __LINUX_MEMORY_OF_REG_H
10e6b42eb6SAneesh V #define __LINUX_MEMORY_OF_REG_H
11e6b42eb6SAneesh V 
127c304d7eSStephen Warren #if defined(CONFIG_OF) && defined(CONFIG_DDR)
13df307273SKrzysztof Kozlowski const struct lpddr2_min_tck *of_get_min_tck(struct device_node *np,
14e6b42eb6SAneesh V 					    struct device *dev);
15df307273SKrzysztof Kozlowski const struct lpddr2_timings *of_get_ddr_timings(struct device_node *np_ddr,
16df307273SKrzysztof Kozlowski 						struct device *dev,
17e6b42eb6SAneesh V 						u32 device_type, u32 *nr_frequencies);
18df307273SKrzysztof Kozlowski const struct lpddr3_min_tck *of_lpddr3_get_min_tck(struct device_node *np,
19df307273SKrzysztof Kozlowski 						   struct device *dev);
20df307273SKrzysztof Kozlowski const struct lpddr3_timings *
21df307273SKrzysztof Kozlowski of_lpddr3_get_ddr_timings(struct device_node *np_ddr,
22976897ddSLukasz Luba 			  struct device *dev, u32 device_type, u32 *nr_frequencies);
23*38322cf4SDmitry Osipenko 
24*38322cf4SDmitry Osipenko const struct lpddr2_info *of_lpddr2_get_info(struct device_node *np,
25*38322cf4SDmitry Osipenko 					     struct device *dev);
26e6b42eb6SAneesh V #else
27e6b42eb6SAneesh V static inline const struct lpddr2_min_tck
of_get_min_tck(struct device_node * np,struct device * dev)28e6b42eb6SAneesh V 	*of_get_min_tck(struct device_node *np, struct device *dev)
29e6b42eb6SAneesh V {
30e6b42eb6SAneesh V 	return NULL;
31e6b42eb6SAneesh V }
32e6b42eb6SAneesh V 
33e6b42eb6SAneesh V static inline const struct lpddr2_timings
of_get_ddr_timings(struct device_node * np_ddr,struct device * dev,u32 device_type,u32 * nr_frequencies)34e6b42eb6SAneesh V 	*of_get_ddr_timings(struct device_node *np_ddr, struct device *dev,
35e6b42eb6SAneesh V 	u32 device_type, u32 *nr_frequencies)
36e6b42eb6SAneesh V {
37e6b42eb6SAneesh V 	return NULL;
38e6b42eb6SAneesh V }
39976897ddSLukasz Luba 
40976897ddSLukasz Luba static inline const struct lpddr3_min_tck
of_lpddr3_get_min_tck(struct device_node * np,struct device * dev)41976897ddSLukasz Luba 	*of_lpddr3_get_min_tck(struct device_node *np, struct device *dev)
42976897ddSLukasz Luba {
43976897ddSLukasz Luba 	return NULL;
44976897ddSLukasz Luba }
45976897ddSLukasz Luba 
46976897ddSLukasz Luba 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)47976897ddSLukasz Luba 	*of_lpddr3_get_ddr_timings(struct device_node *np_ddr,
48976897ddSLukasz Luba 	struct device *dev, u32 device_type, u32 *nr_frequencies)
49976897ddSLukasz Luba {
50976897ddSLukasz Luba 	return NULL;
51976897ddSLukasz Luba }
52*38322cf4SDmitry Osipenko 
53*38322cf4SDmitry Osipenko static inline const struct lpddr2_info
of_lpddr2_get_info(struct device_node * np,struct device * dev)54*38322cf4SDmitry Osipenko 	*of_lpddr2_get_info(struct device_node *np, struct device *dev)
55*38322cf4SDmitry Osipenko {
56*38322cf4SDmitry Osipenko 	return NULL;
57*38322cf4SDmitry Osipenko }
587c304d7eSStephen Warren #endif /* CONFIG_OF && CONFIG_DDR */
59e6b42eb6SAneesh V 
60e6b42eb6SAneesh V #endif /* __LINUX_MEMORY_OF_REG_ */
61