xref: /linux/drivers/gpu/drm/ast/ast_post.h (revision 8d2b0853add1d7534dc0794e3c8e0b9e8c4ec640)
126ef96eeSThomas Zimmermann /* SPDX-License-Identifier: MIT */
226ef96eeSThomas Zimmermann 
326ef96eeSThomas Zimmermann #ifndef AST_POST_H
426ef96eeSThomas Zimmermann #define AST_POST_H
526ef96eeSThomas Zimmermann 
6eb104c69SThomas 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 
17eb104c69SThomas Zimmermann /* hardware fields */
18eb104c69SThomas Zimmermann #define __AST_DRAMSTRUCT_DRAM_TYPE      0x0004
19eb104c69SThomas Zimmermann 
20eb104c69SThomas Zimmermann /* control commands */
21eb104c69SThomas Zimmermann #define __AST_DRAMSTRUCT_UDELAY         0xff00
22eb104c69SThomas Zimmermann #define __AST_DRAMSTRUCT_INVALID        0xffff
23eb104c69SThomas Zimmermann 
24eb104c69SThomas Zimmermann #define __AST_DRAMSTRUCT_INDEX(_name) \
25eb104c69SThomas Zimmermann 	(__AST_DRAMSTRUCT_ ## _name)
26eb104c69SThomas Zimmermann 
27eb104c69SThomas Zimmermann #define AST_DRAMSTRUCT_INIT(_name, _value) \
28eb104c69SThomas Zimmermann 	{ __AST_DRAMSTRUCT_INDEX(_name), (_value) }
29eb104c69SThomas Zimmermann 
30eb104c69SThomas Zimmermann #define AST_DRAMSTRUCT_UDELAY(_usecs) \
31eb104c69SThomas Zimmermann 	AST_DRAMSTRUCT_INIT(UDELAY, _usecs)
32eb104c69SThomas Zimmermann #define AST_DRAMSTRUCT_INVALID \
33eb104c69SThomas Zimmermann 	AST_DRAMSTRUCT_INIT(INVALID, U32_MAX)
34eb104c69SThomas Zimmermann 
35eb104c69SThomas Zimmermann #define AST_DRAMSTRUCT_IS(_entry, _name) \
36eb104c69SThomas Zimmermann 	((_entry)->index == __AST_DRAMSTRUCT_INDEX(_name))
37eb104c69SThomas 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 
44*b1ce4ab0SThomas Zimmermann /* ast_2000.c */
45*b1ce4ab0SThomas Zimmermann void ast_2000_set_def_ext_reg(struct ast_device *ast);
46*b1ce4ab0SThomas Zimmermann 
47*b1ce4ab0SThomas Zimmermann /* ast_2300.c */
48*b1ce4ab0SThomas Zimmermann void ast_2300_set_def_ext_reg(struct ast_device *ast);
49*b1ce4ab0SThomas Zimmermann 
5026ef96eeSThomas Zimmermann #endif
51