Skip to content

Commit a751ce1

Browse files
committed
bsp: k230: add mpp driver
Signed-off-by: Wang Chen <[email protected]>
1 parent aa7afd9 commit a751ce1

File tree

3 files changed

+348
-0
lines changed

3 files changed

+348
-0
lines changed

bsp/k230/drivers/mpp/SConscript

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# RT-Thread building script for component
2+
3+
from building import *
4+
import os
5+
cwd = GetCurrentDir()
6+
libdir = os.getenv('MPP_SRC_DIR')
7+
src = Glob('*.c')
8+
CPPPATH = ['include']
9+
if os.path.exists(str(libdir) + '/kernel/lib'):
10+
libdir = libdir + '/kernel/lib'
11+
else:
12+
libdir = cwd + '/lib'
13+
LIBPATH = [libdir]
14+
libname = ''
15+
liblist = os.listdir(str(libdir))
16+
for item in liblist:
17+
if item[-2:] == ".a":
18+
libname = libname + '-l' + item[3:-2] + ' '
19+
20+
LINKFLAGS = ' -Wl,--whole-archive ' + libname + ' -Wl,--no-whole-archive'
21+
group = DefineGroup('Mpp', src, depend = ['RT_USING_MPP'], CPPPATH = CPPPATH, LINKFLAGS = LINKFLAGS, LIBPATH=LIBPATH)
22+
23+
objs = [group]
24+
25+
list = os.listdir(cwd)
26+
27+
for item in list:
28+
if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
29+
objs = objs + SConscript(os.path.join(item, 'SConscript'))
30+
31+
Return('objs')

bsp/k230/drivers/mpp/lib/.gitkeep

Whitespace-only changes.

bsp/k230/drivers/mpp/mpp_init.c

Lines changed: 317 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,317 @@
1+
#include <rthw.h>
2+
#include <rtthread.h>
3+
#include <rtdevice.h>
4+
5+
6+
/***********************CMPI*****************************/
7+
int __attribute__((weak)) cmpi_init(void)
8+
{
9+
rt_kprintf("no cmpi library!\n");
10+
return -1;
11+
}
12+
extern int cmpi_init(void);
13+
/***************************************************/
14+
15+
/********************LOG*****************************/
16+
int __attribute__((weak)) log_init(void)
17+
{
18+
rt_kprintf("no log library!\n");
19+
return -1;
20+
}
21+
extern int log_init(void);
22+
/***************************************************/
23+
24+
/********************MMZ*****************************/
25+
#ifndef MEM_MMZ_BASE
26+
#define MEM_MMZ_BASE 0x10000000UL
27+
#endif
28+
29+
#ifndef MEM_MMZ_SIZE
30+
#define MEM_MMZ_SIZE 0xffff000UL
31+
#endif
32+
int __attribute__((weak)) mmz_init(unsigned long mmz_start, unsigned long mmz_size)
33+
{
34+
rt_kprintf("no mmz library!\n");
35+
return -1;
36+
}
37+
extern int mmz_init(unsigned long mmz_start, unsigned long mmz_size);
38+
/****************************************************/
39+
40+
/********************MMZ_USEDEV**********************/
41+
int __attribute__((weak)) mmz_userdev_init(void)
42+
{
43+
rt_kprintf("no mmz userdev library!\n");
44+
return -1;
45+
}
46+
extern int mmz_userdev_init(void);
47+
/****************************************************/
48+
49+
/********************MMZ_USEDEV**********************/
50+
int __attribute__((weak)) vb_init(void)
51+
{
52+
rt_kprintf("no vb library!\n");
53+
return -1;
54+
}
55+
extern int vb_init(void);
56+
/****************************************************/
57+
58+
59+
/********************sysctrl*************************/
60+
int __attribute__((weak)) sysctrl_init(void)
61+
{
62+
rt_kprintf("no sysctrl library!\n");
63+
return -1;
64+
}
65+
extern int sysctrl_init(void);
66+
/****************************************************/
67+
68+
static int mpp_base_init(void)
69+
{
70+
int ret = -1;
71+
72+
/*cmpi(Common Manageability Programming Interface) init*/
73+
ret = cmpi_init();
74+
if(ret) {
75+
rt_kprintf("cmpi_init error!\n");
76+
//while(1);
77+
}
78+
79+
/*log init*/
80+
ret = log_init();
81+
if(ret) {
82+
rt_kprintf("log_init error!\n");
83+
//while(1);
84+
}
85+
86+
/*mmz(media memory zone) init*/
87+
ret = mmz_init(MEM_MMZ_BASE, MEM_MMZ_SIZE);
88+
if(ret) {
89+
rt_kprintf("mmz_init error!\n");
90+
//while(1);
91+
}
92+
93+
/*mmz userdev init*/
94+
ret = mmz_userdev_init();
95+
if(ret) {
96+
rt_kprintf("mmz_userdev_init error!\n");
97+
//while(1);
98+
}
99+
100+
/*sysctrl ctrl init*/
101+
ret = sysctrl_init();
102+
if(ret) {
103+
rt_kprintf("sysctrl_init error!\n");
104+
//while(1);
105+
}
106+
107+
ret = vb_init();
108+
if(ret) {
109+
rt_kprintf("vb_init error!\n");
110+
//while(1);
111+
}
112+
113+
return 0;
114+
}
115+
116+
/*************media freq device**********************/
117+
int __attribute__((weak)) media_freq_init(void)
118+
{
119+
rt_kprintf("no media_freq_init library!\n");
120+
return -1;
121+
}
122+
extern int media_freq_init(void);
123+
124+
/*************virtual video input device*************/
125+
int __attribute__((weak)) vvi_init(void)
126+
{
127+
rt_kprintf("no vvi_init library!\n");
128+
return -1;
129+
}
130+
extern int vvi_init(void);
131+
/****************************************************/
132+
133+
/*************virtual video input device*************/
134+
int __attribute__((weak)) vvo_init(void)
135+
{
136+
rt_kprintf("no vvo_init library!\n");
137+
return -1;
138+
}
139+
extern int vvo_init(void);
140+
/****************************************************/
141+
142+
/*********************dma device*********************/
143+
int __attribute__((weak)) dma_init(void)
144+
{
145+
rt_kprintf("no dma_init library!\n");
146+
return -1;
147+
}
148+
extern int dma_init(void);
149+
/****************************************************/
150+
151+
/*************video encoder device*************/
152+
int __attribute__((weak)) venc_init(void)
153+
{
154+
rt_kprintf("no venc_init library!\n");
155+
return -1;
156+
}
157+
extern int venc_init(void);
158+
/****************************************************/
159+
160+
/*************video decoder device*************/
161+
int __attribute__((weak)) vdec_init(void)
162+
{
163+
rt_kprintf("no vdec_init library!\n");
164+
return -1;
165+
}
166+
extern int vdec_init(void);
167+
/****************************************************/
168+
169+
/*************ai input device*************/
170+
int __attribute__((weak)) ai_init(void)
171+
{
172+
rt_kprintf("no ai_init library!\n");
173+
return -1;
174+
}
175+
extern int ai_init(void);
176+
/****************************************************/
177+
178+
/*************ao input device*************/
179+
int __attribute__((weak)) ao_init(void)
180+
{
181+
rt_kprintf("no ao_init library!\n");
182+
return -1;
183+
}
184+
extern int ao_init(void);
185+
186+
/*************audio encode device*************/
187+
int __attribute__((weak)) aenc_init(void)
188+
{
189+
rt_kprintf("no aenc_init library!\n");
190+
return -1;
191+
}
192+
extern int aenc_init(void);
193+
/****************************************************/
194+
195+
/*************audio decoder device*************/
196+
int __attribute__((weak)) adec_init(void)
197+
{
198+
rt_kprintf("no adec_init library!\n");
199+
return -1;
200+
}
201+
extern int adec_init(void);
202+
203+
/*************audio codec device*************/
204+
int __attribute__((weak)) acodec_init(void)
205+
{
206+
rt_kprintf("no adec_init library!\n");
207+
return -1;
208+
}
209+
extern int acodec_init(void);
210+
211+
/************* video output device*************/
212+
int __attribute__((weak)) kd_vo_init(void)
213+
{
214+
rt_kprintf("no kd_vo_init library!\n");
215+
return -1;
216+
}
217+
extern int kd_vo_init(void);
218+
219+
/************* video output device*************/
220+
int __attribute__((weak)) connector_device_init(void)
221+
{
222+
rt_kprintf("no kd_vo_init library!\n");
223+
return -1;
224+
}
225+
extern int connector_device_init(void);
226+
227+
/*********************dpu device*********************/
228+
int __attribute__((weak)) dpu_init(void)
229+
{
230+
rt_kprintf("no dpu_init library!\n");
231+
return -1;
232+
}
233+
extern int dpu_init(void);
234+
/****************************************************/
235+
236+
/****************************************************/
237+
238+
/************* vdss device*************/
239+
int __attribute__((weak)) vdss_init(void)
240+
{
241+
rt_kprintf("no vdss_init library!\n");
242+
return -1;
243+
}
244+
extern int vdss_init(void);
245+
/*************vicap device*************/
246+
int __attribute__((weak)) vicap_init(void)
247+
{
248+
rt_kprintf("no vicap_init library!\n");
249+
return -1;
250+
}
251+
extern int vicap_init(void);
252+
/****************************************************/
253+
int __attribute__((weak)) dewarp_init(void)
254+
{
255+
rt_kprintf("no dewarp_init library!\n");
256+
return -1;
257+
}
258+
extern int dewarp_init(void);
259+
/****************************************************/
260+
261+
/*************pm device*************/
262+
int __attribute__((weak)) pm_core_init(void)
263+
{
264+
rt_kprintf("no pm_core_init library!\n");
265+
return -1;
266+
}
267+
extern int pm_core_init(void);
268+
/****************************************************/
269+
270+
/*************fft device*************/
271+
int __attribute__((weak)) fft_device_init(void)
272+
{
273+
rt_kprintf("no fft_device_init library!\n");
274+
return -1;
275+
}
276+
extern int fft_device_init(void);
277+
/****************************************************/
278+
279+
/*************nonai_2d device*************/
280+
int __attribute__((weak)) nonai_2d_init(void)
281+
{
282+
rt_kprintf("no nonai_2d_init library!\n");
283+
return -1;
284+
}
285+
extern int nonai_2d_init(void);
286+
/****************************************************/
287+
288+
static int mpp_device_init(void)
289+
{
290+
media_freq_init();
291+
vicap_init();
292+
vvi_init();
293+
vvo_init();
294+
dma_init();
295+
venc_init();
296+
vdec_init();
297+
ai_init();
298+
ao_init();
299+
aenc_init();
300+
adec_init();
301+
acodec_init();
302+
kd_vo_init();
303+
connector_device_init();
304+
vdss_init();
305+
dpu_init();
306+
dewarp_init();
307+
pm_core_init();
308+
fft_device_init();
309+
nonai_2d_init();
310+
return 0;
311+
}
312+
313+
int mpp_init(void)
314+
{
315+
mpp_base_init();
316+
return mpp_device_init();
317+
}

0 commit comments

Comments
 (0)