1*ad309a88SDingqiang Lin /* 2*ad309a88SDingqiang Lin * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3*ad309a88SDingqiang Lin * 4*ad309a88SDingqiang Lin * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 5*ad309a88SDingqiang Lin */ 6*ad309a88SDingqiang Lin #include <common.h> 7*ad309a88SDingqiang Lin #include <dm.h> 8*ad309a88SDingqiang Lin 9*ad309a88SDingqiang Lin #include "rkflash_api.h" 10*ad309a88SDingqiang Lin #include "rkflash_blk.h" 11*ad309a88SDingqiang Lin 12*ad309a88SDingqiang Lin #ifdef CONFIG_RKSFC_NOR 13*ad309a88SDingqiang Lin int rk_snor_init(struct udevice *udev) 14*ad309a88SDingqiang Lin { 15*ad309a88SDingqiang Lin struct rkflash_info *priv = dev_get_priv(udev); 16*ad309a88SDingqiang Lin struct SFNOR_DEV *p_dev = (struct SFNOR_DEV *)&priv->flash_dev_info; 17*ad309a88SDingqiang Lin 18*ad309a88SDingqiang Lin return snor_init(p_dev); 19*ad309a88SDingqiang Lin } 20*ad309a88SDingqiang Lin 21*ad309a88SDingqiang Lin u32 rk_snor_get_capacity(struct udevice *udev) 22*ad309a88SDingqiang Lin { 23*ad309a88SDingqiang Lin struct rkflash_info *priv = dev_get_priv(udev); 24*ad309a88SDingqiang Lin struct SFNOR_DEV *p_dev = (struct SFNOR_DEV *)&priv->flash_dev_info; 25*ad309a88SDingqiang Lin 26*ad309a88SDingqiang Lin return snor_get_capacity(p_dev); 27*ad309a88SDingqiang Lin } 28*ad309a88SDingqiang Lin 29*ad309a88SDingqiang Lin int rk_snor_read(struct udevice *udev, u32 sec, u32 n_sec, void *p_data) 30*ad309a88SDingqiang Lin { 31*ad309a88SDingqiang Lin struct rkflash_info *priv = dev_get_priv(udev); 32*ad309a88SDingqiang Lin struct SFNOR_DEV *p_dev = (struct SFNOR_DEV *)&priv->flash_dev_info; 33*ad309a88SDingqiang Lin 34*ad309a88SDingqiang Lin return snor_read(p_dev, sec, n_sec, p_data); 35*ad309a88SDingqiang Lin } 36*ad309a88SDingqiang Lin 37*ad309a88SDingqiang Lin int rk_snor_write(struct udevice *udev, u32 sec, u32 n_sec, const void *p_data) 38*ad309a88SDingqiang Lin { 39*ad309a88SDingqiang Lin struct rkflash_info *priv = dev_get_priv(udev); 40*ad309a88SDingqiang Lin struct SFNOR_DEV *p_dev = (struct SFNOR_DEV *)&priv->flash_dev_info; 41*ad309a88SDingqiang Lin 42*ad309a88SDingqiang Lin return snor_write(p_dev, sec, n_sec, p_data); 43*ad309a88SDingqiang Lin } 44*ad309a88SDingqiang Lin #endif 45*ad309a88SDingqiang Lin 46