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