xref: /rk3399_rockchip-uboot/drivers/rkflash/rkflash_api.c (revision ad309a883b81622573c8021d60b4eb676f57d5c2)
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