Message ID | 20190715182856.21688-11-jagan@amarulasolutions.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
On 2019/7/16 上午2:28, Jagan Teki wrote: > Add sdram driver to handle debug across rockchip SoCs. > > This would help to improve code debugging feature for > sdram drivers in rockchip family, whoever wants to > debug the driver should call these core debug code on > their respective platform sdram drivers. > > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > Signed-off-by: YouMin Chen <cym@rock-chips.com> Reviewed-by: Kever Yang <Kever.yang@rock-chips.com> Thanks, - Kever > --- > .../include/asm/arch-rockchip/sdram_common.h | 9 +++++ > drivers/ram/rockchip/Kconfig | 9 +++++ > drivers/ram/rockchip/Makefile | 1 + > drivers/ram/rockchip/sdram_debug.c | 34 +++++++++++++++++++ > 4 files changed, 53 insertions(+) > create mode 100644 drivers/ram/rockchip/sdram_debug.c > > diff --git a/arch/arm/include/asm/arch-rockchip/sdram_common.h b/arch/arm/include/asm/arch-rockchip/sdram_common.h > index 7ac25af327..171b233f95 100644 > --- a/arch/arm/include/asm/arch-rockchip/sdram_common.h > +++ b/arch/arm/include/asm/arch-rockchip/sdram_common.h > @@ -92,4 +92,13 @@ size_t rockchip_sdram_size(phys_addr_t reg); > > /* Called by U-Boot board_init_r for Rockchip SoCs */ > int dram_init(void); > + > +#if !defined(CONFIG_RAM_ROCKCHIP_DEBUG) > +inline void sdram_print_dram_type(unsigned char dramtype) > +{ > +} > +#else > +void sdram_print_dram_type(unsigned char dramtype); > +#endif /* CONFIG_RAM_ROCKCHIP_DEBUG */ > + > #endif > diff --git a/drivers/ram/rockchip/Kconfig b/drivers/ram/rockchip/Kconfig > index 995cb487b8..151ffb684d 100644 > --- a/drivers/ram/rockchip/Kconfig > +++ b/drivers/ram/rockchip/Kconfig > @@ -7,6 +7,15 @@ config RAM_ROCKCHIP > > if RAM_ROCKCHIP > > +config RAM_ROCKCHIP_DEBUG > + bool "Rockchip ram drivers debugging" > + help > + This enables debugging ram driver API's for the platforms > + based on Rockchip SoCs. > + > + This is an option for developers to understand the ram drivers > + initialization, configurations and etc. > + > config RAM_RK3399 > bool "Ram driver for Rockchip RK3399" > default ROCKCHIP_RK3399 > diff --git a/drivers/ram/rockchip/Makefile b/drivers/ram/rockchip/Makefile > index 07d4b62a9d..feb1f82d00 100644 > --- a/drivers/ram/rockchip/Makefile > +++ b/drivers/ram/rockchip/Makefile > @@ -3,6 +3,7 @@ > # Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH > # > > +obj-$(CONFIG_RAM_ROCKCHIP_DEBUG) += sdram_debug.o > obj-$(CONFIG_ROCKCHIP_RK3368) = dmc-rk3368.o > obj-$(CONFIG_ROCKCHIP_RK3128) = sdram_rk3128.o > obj-$(CONFIG_ROCKCHIP_RK3188) = sdram_rk3188.o > diff --git a/drivers/ram/rockchip/sdram_debug.c b/drivers/ram/rockchip/sdram_debug.c > new file mode 100644 > index 0000000000..c13e140fa5 > --- /dev/null > +++ b/drivers/ram/rockchip/sdram_debug.c > @@ -0,0 +1,34 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * (C) Copyright 2019 Rockchip Electronics Co., Ltd > + * (C) Copyright 2019 Amarula Solutions. > + * Author: Jagan Teki <jagan@amarulasolutions.com> > + */ > + > +#include <common.h> > +#include <debug_uart.h> > +#include <asm/arch-rockchip/sdram_common.h> > + > +void sdram_print_dram_type(unsigned char dramtype) > +{ > + switch (dramtype) { > + case DDR3: > + printascii("DDR3"); > + break; > + case DDR4: > + printascii("DDR4"); > + break; > + case LPDDR2: > + printascii("LPDDR2"); > + break; > + case LPDDR3: > + printascii("LPDDR3"); > + break; > + case LPDDR4: > + printascii("LPDDR4"); > + break; > + default: > + printascii("Unknown Device"); > + break; > + } > +}
diff --git a/arch/arm/include/asm/arch-rockchip/sdram_common.h b/arch/arm/include/asm/arch-rockchip/sdram_common.h index 7ac25af327..171b233f95 100644 --- a/arch/arm/include/asm/arch-rockchip/sdram_common.h +++ b/arch/arm/include/asm/arch-rockchip/sdram_common.h @@ -92,4 +92,13 @@ size_t rockchip_sdram_size(phys_addr_t reg); /* Called by U-Boot board_init_r for Rockchip SoCs */ int dram_init(void); + +#if !defined(CONFIG_RAM_ROCKCHIP_DEBUG) +inline void sdram_print_dram_type(unsigned char dramtype) +{ +} +#else +void sdram_print_dram_type(unsigned char dramtype); +#endif /* CONFIG_RAM_ROCKCHIP_DEBUG */ + #endif diff --git a/drivers/ram/rockchip/Kconfig b/drivers/ram/rockchip/Kconfig index 995cb487b8..151ffb684d 100644 --- a/drivers/ram/rockchip/Kconfig +++ b/drivers/ram/rockchip/Kconfig @@ -7,6 +7,15 @@ config RAM_ROCKCHIP if RAM_ROCKCHIP +config RAM_ROCKCHIP_DEBUG + bool "Rockchip ram drivers debugging" + help + This enables debugging ram driver API's for the platforms + based on Rockchip SoCs. + + This is an option for developers to understand the ram drivers + initialization, configurations and etc. + config RAM_RK3399 bool "Ram driver for Rockchip RK3399" default ROCKCHIP_RK3399 diff --git a/drivers/ram/rockchip/Makefile b/drivers/ram/rockchip/Makefile index 07d4b62a9d..feb1f82d00 100644 --- a/drivers/ram/rockchip/Makefile +++ b/drivers/ram/rockchip/Makefile @@ -3,6 +3,7 @@ # Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH # +obj-$(CONFIG_RAM_ROCKCHIP_DEBUG) += sdram_debug.o obj-$(CONFIG_ROCKCHIP_RK3368) = dmc-rk3368.o obj-$(CONFIG_ROCKCHIP_RK3128) = sdram_rk3128.o obj-$(CONFIG_ROCKCHIP_RK3188) = sdram_rk3188.o diff --git a/drivers/ram/rockchip/sdram_debug.c b/drivers/ram/rockchip/sdram_debug.c new file mode 100644 index 0000000000..c13e140fa5 --- /dev/null +++ b/drivers/ram/rockchip/sdram_debug.c @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * (C) Copyright 2019 Rockchip Electronics Co., Ltd + * (C) Copyright 2019 Amarula Solutions. + * Author: Jagan Teki <jagan@amarulasolutions.com> + */ + +#include <common.h> +#include <debug_uart.h> +#include <asm/arch-rockchip/sdram_common.h> + +void sdram_print_dram_type(unsigned char dramtype) +{ + switch (dramtype) { + case DDR3: + printascii("DDR3"); + break; + case DDR4: + printascii("DDR4"); + break; + case LPDDR2: + printascii("LPDDR2"); + break; + case LPDDR3: + printascii("LPDDR3"); + break; + case LPDDR4: + printascii("LPDDR4"); + break; + default: + printascii("Unknown Device"); + break; + } +}