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