Other Parts Discussed in Thread: DS90C187
1. Does AM-5728 Soc support the display color of 18-bit LVDS panel?
2. If it can support the display color of 18-bit LVDS panel, how do I modify the code?
I use "PROCESSOR-SDK-LINUX-AM57X 03_01_00_06" BSP to build code.
I previously asked TI's agent, they said we need to write the following values to the register on bootloader:
DISPC_CONFIG1 : Physical Address 0x5800 1044
[15] CPR = 0x1: Color Phase Rotation Enabled
DISPC_CPR1_COEF_R : Physical Address 0x5800 1220
0x00800000
DISPC_CPR1_COEF_G : Physical Address 0x5800 1224
0x00001000
DISPC_CPR1_COEF_B : Physical Address 0x5800 1228
0x00000002
3. I have done two tests, but I still have problems.
a) Test Case 1:
I try to set suggestion values to the register on bootloader and boot the device, but the device still cannot work fine.
After I read these register values from kernel, I found that I set these values in the bootloader is different.
u-boot simple log:
=> mw 0x58001220 0x00800000
=> mw 0x58001224 0x00001000
=> mw 0x58001228 0x00000002
=> mw 0x58001044 0x0000820C
=> boot
Kernel simple log:
root@am57xxrom7510a2:~# devmem2 0x58001220
/dev/mem opened.
Memory mapped at address 0xb6f5b000.
Read at address 0x58001220 (0xb6f5b220): 0x00000000
root@am57xxrom7510a2:~#
root@am57xxrom7510a2:~# devmem2 0x58001224
/dev/mem opened.
Memory mapped at address 0xb6f7f000.
Read at address 0x58001224 (0xb6f7f224): 0x00000000
root@am57xxrom7510a2:~#
root@am57xxrom7510a2:~# devmem2 0x58001228
/dev/mem opened.
Memory mapped at address 0xb6f4f000.
Read at address 0x58001228 (0xb6f4f228): 0x00000000
root@am57xxrom7510a2:~# devmem2 0x58001044
/dev/mem opened.
Memory mapped at address 0xb6fd0000.
Read at address 0x58001044 (0xb6fd0044): 0x0000020C
root@am57xxrom7510a2:~#
b) Test Case 2:
I try to modify "dispc.c" file in kernel, but the device still cannot work fine.
After I read these register values from kernel, but it only first register value is changed.
b_1) Modify drivers/gpu/drm/omapdrm/dss/dispc.c:
static void dispc_mgr_enable_cpr(enum omap_channel channel, bool enable)
{
if (channel == OMAP_DSS_CHANNEL_DIGIT)
return;
mgr_fld_write(channel, DISPC_MGR_FLD_CPR, enable);
#if 1
dispc_write_reg(0x220, 0x00800000);
dispc_write_reg(0x224, 0x00001000);
dispc_write_reg(0x228, 0x00000002);
dispc_write_reg(0x44, 0x820c);
#endif
}
b) Kernel simple log:
root@am57xxrom7510a2:~# devmem2 0x58001220
/dev/mem opened.
Memory mapped at address 0xb6fa9000.
Read at address 0x58001220 (0xb6fa9220): 0x00000000
root@am57xxrom7510a2:~#
root@am57xxrom7510a2:~# devmem2 0x58001224
/dev/mem opened.
Memory mapped at address 0xb6f66000.
Read at address 0x58001224 (0xb6f66224): 0x00000000
root@am57xxrom7510a2:~#
root@am57xxrom7510a2:~# devmem2 0x58001228
/dev/mem opened.
Memory mapped at address 0xb6f48000.
Read at address 0x58001228 (0xb6f48228): 0x00000000
root@am57xxrom7510a2:~# devmem2 0x58001044
/dev/mem opened.
Memory mapped at address 0xb6fdb000.
Read at address 0x58001044 (0xb6fdb044): 0x0000820C
Can you tell me how to solve this issue?
Thank you.
Best Regards,
Alex Cheng