xref: /linux/drivers/gpu/drm/ast/ast_post.h (revision eb104c69db707ce0208f753a897dadd39f51342f)
126ef96eeSThomas Zimmermann /* SPDX-License-Identifier: MIT */
226ef96eeSThomas Zimmermann 
326ef96eeSThomas Zimmermann #ifndef AST_POST_H
426ef96eeSThomas Zimmermann #define AST_POST_H
526ef96eeSThomas Zimmermann 
6*eb104c69SThomas Zimmermann #include <linux/limits.h>
726ef96eeSThomas Zimmermann #include <linux/types.h>
826ef96eeSThomas Zimmermann 
926ef96eeSThomas Zimmermann struct ast_device;
1026ef96eeSThomas Zimmermann 
11f28f15e6SThomas Zimmermann /* DRAM timing tables */
12f28f15e6SThomas Zimmermann struct ast_dramstruct {
13f28f15e6SThomas Zimmermann 	u16 index;
14f28f15e6SThomas Zimmermann 	u32 data;
15f28f15e6SThomas Zimmermann };
16f28f15e6SThomas Zimmermann 
17*eb104c69SThomas Zimmermann /* hardware fields */
18*eb104c69SThomas Zimmermann #define __AST_DRAMSTRUCT_DRAM_TYPE      0x0004
19*eb104c69SThomas Zimmermann 
20*eb104c69SThomas Zimmermann /* control commands */
21*eb104c69SThomas Zimmermann #define __AST_DRAMSTRUCT_UDELAY         0xff00
22*eb104c69SThomas Zimmermann #define __AST_DRAMSTRUCT_INVALID        0xffff
23*eb104c69SThomas Zimmermann 
24*eb104c69SThomas Zimmermann #define __AST_DRAMSTRUCT_INDEX(_name) \
25*eb104c69SThomas Zimmermann 	(__AST_DRAMSTRUCT_ ## _name)
26*eb104c69SThomas Zimmermann 
27*eb104c69SThomas Zimmermann #define AST_DRAMSTRUCT_INIT(_name, _value) \
28*eb104c69SThomas Zimmermann 	{ __AST_DRAMSTRUCT_INDEX(_name), (_value) }
29*eb104c69SThomas Zimmermann 
30*eb104c69SThomas Zimmermann #define AST_DRAMSTRUCT_UDELAY(_usecs) \
31*eb104c69SThomas Zimmermann 	AST_DRAMSTRUCT_INIT(UDELAY, _usecs)
32*eb104c69SThomas Zimmermann #define AST_DRAMSTRUCT_INVALID \
33*eb104c69SThomas Zimmermann 	AST_DRAMSTRUCT_INIT(INVALID, U32_MAX)
34*eb104c69SThomas Zimmermann 
35*eb104c69SThomas Zimmermann #define AST_DRAMSTRUCT_IS(_entry, _name) \
36*eb104c69SThomas Zimmermann 	((_entry)->index == __AST_DRAMSTRUCT_INDEX(_name))
37*eb104c69SThomas Zimmermann 
3826ef96eeSThomas Zimmermann u32 __ast_mindwm(void __iomem *regs, u32 r);
3926ef96eeSThomas Zimmermann void __ast_moutdwm(void __iomem *regs, u32 r, u32 v);
4026ef96eeSThomas Zimmermann 
4126ef96eeSThomas Zimmermann bool mmc_test(struct ast_device *ast, u32 datagen, u8 test_ctl);
4226ef96eeSThomas Zimmermann bool mmc_test_burst(struct ast_device *ast, u32 datagen);
4326ef96eeSThomas Zimmermann 
4426ef96eeSThomas Zimmermann #endif
45