Bonjour,
Je dois configurer le device tree d'un système embarqué sous linux.
Je dois modifier la configuration d'un MUX externe en m'appuyant sur cet exemple :
J'aimerai comprendre exactement ce que ça fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 &i2c0_emux { mux-gpios = <&gpio 55 GPIO_ACTIVE_HIGH &gpio 60 GPIO_ACTIVE_HIGH &gpio 61 GPIO_ACTIVE_HIGH &gpio 54 GPIO_ACTIVE_HIGH>; idle-state = <0x8>; i2c112: i2c_device12 { reg = <0x0>; #address-cells = <1>; #size-cells = <0>; }; i2c113: i2c_device13 { reg = <0x1>; #address-cells = <1>; #size-cells = <0>; }; i2c114: i2c_device14 { reg = <0x2>; #address-cells = <1>; #size-cells = <0>; }; i2c115: i2c_device15 { reg = <0x3>; #address-cells = <1>; #size-cells = <0>; }; i2c116: i2c_device16 { reg = <0x4>; #address-cells = <1>; #size-cells = <0>; }; i2c117: i2c_device17 { reg = <0x5>; #address-cells = <1>; #size-cells = <0>; }; i2c118: i2c_device18 { reg = <0x6>; #address-cells = <1>; #size-cells = <0>; }; i2c119: i2c_device19 { reg = <0x7>; #address-cells = <1>; #size-cells = <0>; }; };
De ce que je comprend :
- mux-gpios : déclare la liste des signaux utilisé par le MUX.
- idle-state : défini la valeur par défaut du bus => <0x8> = <0b1000> => donc un signal à 1 et les autres à 0... mais c'est défini dans quel ordre ? le 1 correspond à quel signal ?
- reg : valeur à appliquer au bus pour activer le signal correspondant... mais même question que pour dle-state, la valeur est définie dans quel ordre ?
Je n'ai pas compris ç quoi sert #address-cells et #size-cells servent.
Pouvez-vous éclairer ma lanterne?
Merci d'avance
Partager