etc/services - sync with NetBSD-8
[minix.git] / minix / drivers / video / tda19988 / README.txt
blobbe76f2d815914a4e2d4dea8655836adefa3e51e9
1 TDA19988 Driver (HDMI Framer)
2 =============================
4 Overview
5 --------
7 This is the driver for the HDMI Framer chip commonly found on the BeagleBone
8 Black.
10 Interface
11 ---------
13 To make things easy for the frame buffer driver, a block device driver
14 interface is provided. Read requests cause the TDA19988 driver to read
15 the EDID and return the data.
17 Documentation
18 -------------
20 The documentation available is rather thin. NXP doesn't provide a
21 datasheet on their website and they did not respond to my request
22 for a datasheet. There are a few other sources of information:
24  * TDA9983B.pdf - this chip is similar but not the same. Full
25  register descriptions are provided. This was suggested to me by
26  the author of the Linux driver and someone at BeagleBoard.org as
27  neither of them were able to get a full datasheet for the TDA19988.
29  * TDA19988.pdf - you can probably find this on the net. It's a
30  pre-production draft of the datasheet for the TDA19988. It has
31  some information about how things work, but it doesn't give details
32  on the registers.
34  * LPC4350_FPU_TFT_HDMI-v2.0/Driver/tda19988.c - there's some
35  example code from NXP for a Hitex LPC4350 REV A5 which includes
36  a BSD licensed driver from NXP. It isn't complete as it only does
37  test mode, put-through mode, and EDID reading. Some of the comments
38  in the code make it seem like it isn't totally working/tested.
40  * linux/drivers/gpu/drm/i2c/tda998x_drv.c - there is a Linux driver
41  which implements a lot of functionality. As is always the case,
42  great care has to be taken to only study the code to learn the
43  functionality of the chip and not reproduce/copy the code.
45 Limitations
46 -----------
48 Currently, only the EDID reading functionality is implemented.
50 Testing the Code
51 ----------------
53 Starting up an instance:
55 /sbin/minix-service up /service/tda19988 -label tda19988.1.3470 \
56         -args 'cec_bus=1 cec_address=0x34 hdmi_bus=1 hdmi_address=0x70'
58 Killing an instance:
60 /sbin/minix-service down tda19988.1.3470
62 The driver is meant to be accessed from other drivers using the block
63 device protocol, so it doesn't have a reserved major number and device file.
64 However, if you want a simple test from user space, you can create a temporary
65 device file to read the EDID like this:
67 cd /dev
68 mknod tda19988 b 32 0
69 chmod 600 tda19988
70 /sbin/minix-service up /service/tda19988 -label tda19988.1.3470 \
71         -dev /dev/tda19988 \
72         -args 'cec_bus=1 cec_address=0x34 hdmi_bus=1 hdmi_address=0x70'
73 dd if=/dev/tda19988 of=/root/edid.dat count=1 bs=128
74 /sbin/minix-service down tda19988.1.3470
75 hexdump -C /root/edid.dat
76 rm tda19988
78 The hexdump should begin with the EDID magic number: 00 ff ff ff ff ff ff 00