blob: b13b5d2d73188f1ff6156ae520289a430b85f9b7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
h1. GMSL Camera Setup
h2. Details on system configuration
[[GMSL Configuration]]
h2. Open issues and testing
[[GMSL Cameras Open Issues and testing]]
h2. Software support
h3. External Patches:
h4. Cogent Patches:
https://github.com/CogentEmbedded/meta-rcar/blob/v2.23.0/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0030-Gen3-LVDS-cameras.patch
h4. NXP Patches:
https://community.nxp.com/docs/DOC-158531
h3. Linux kernel
A base branch is available at
* git://jmondi.org/linux-gen3#gmsl/base
The base branch includes VIN and mux support from Niklas' branch git://git.ragnatech.se/linux#vin/mux+gmsl
with the ""max9286: More cleanups and fixes" series from Laurent on top.
vin/mux+gmsl contains the GMSL link stabilization series from Niklas: [PATCH 0/4] GMSL link stabilization.
On top of this branch, some developers branch are available:
* git://jmondi.org/linux-gen3#gmsl/devel/jacopo
Fixes sent out as "[PATCH v2 0/5] v4l: max9286: Additional fixes" + sensor configuration + link status monitoring
* git://jmondi.org/linux-gen3#gmsl/devel/jacopo-i2c-bcast
gmsl/devel/jacopo branch with on top implementation of broadcast transmission of SEREN command to max9271 serializers
h3. Config
Configuration file for Linux-v4.13-rc5 available here: ("linux-v4.13-max9286.config":../../wiki/GMSL_Camera_Setup/linux-v4.13-max9286.config)
h1. I2C configuration
* The MAX9271 does appear to expose all traffic received across the GMSL link on it's I2C bus pins.
* There does not appear to be any cross-talk traffic currently.
* 'Bit-errors' have been seen ... most evidently when an address write incorrectly wrote to register 0x00 instead and 'forcefully' changed the MAX9271 address. All following writes were then 'NACKed'.
* This shows that auto-ack from the MAX9286 (which was enabled at that time) *does not* traverse the GMSL link.
* If the delays between bus configuration writes are not long enough - the following write/read can be corrupted with bit errors, or not be present on the bus at all.
** This shows that the delay after configuration writes must be conservative, and therefore at least 5 ms (recommended by the MAX9286 data sheet) rather than 3 ms or less (as suggested by the MAX9271 DS.
h1. I2C address space allocations
h2. The GMSL camera set up uses the I2C-4 bus on the RCar platform. This has the following pre-existing address assignments:
| Address | Physical | Part | SCL | SDA | Description |
| | CN29 | EXIO-Connector C | 51 | 53 | MIPI CSI-2 Zebax Connector |
| 0x20 | U6 | PCA9654EDTR2G | 14 | 15 | 8 bit IO Expander |
| 0x68 | U11 | 9FGV0841AKILF | 10 | 11 | Salvator-X Page 11 : 8 Output PCIe Clock Gen |
| 0x6a | U61 | 5P49V5923A | 9 | 8 | Salvator-X Page 3 : Versaclock5 |
| 0x70 | U31 | ADV7482WBBCZ | J8 | K8 | Salvator-X Page 19 : ADV7482 HDMI Receiver |
| 0x7C | U58 | MAX9611AUB+ | 6 | 7 | Salvator-X Page 25 : Current Sense Amplifier with ADC |
| 0x7F | U59 | MAX9611AUB+ | 6 | 7 | Salvator-X Page 25 : Current Sense Amplifier with ADC |
h2. Maxim Expansion Board
| Address | Physical | Part | SCL | SDA | Description |
| 0x4c | U1 | MAX9286GTN/V+ | 8 | 7 | MAX9286 GMSL De-serialiser (MAX9286 A) |
| 0x6c | U3 | MAX9286GTN/V+ | 8 | 7 | MAX9286 GMSL De-serialiser (MAX9286 A) |
| | | | | | |
| 0x30 | RDACM20 | OV10635 Default | | | OV10635 Default address |
| 0x40 | RDACM20 | MAX9271 Default | | | MAX9271 Default address |
| 0x50 | RDACM20 | Microcontroller | | | Microcontroller (MCU) Default address |
|