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 :
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>;
	};
};
J'aimerai comprendre exactement ce que ça fait.

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