> > In many cases the channels are "shared" - we have 3 voltage, 3 current and 3 > > power sensors but in fact they are not separate sensors but 3 channels > > each able to measure 3 different things and they may share some common > > properties in each channel (so current, voltage and power may be > > calculated bases on the same shunt resistor or correction factor). An > > example being adi,ltc2992. In those cases it doesn't make sense to have > > two levels as how would you describe the shared parent? Call it generic > > "channels"? So in that case (e.g. for the nct7802, see [1]) do we want just 1-level, maybe like this: nct7802@28 { compatible = "nuvoton,nct7802"; reg = <0x28>; sensor@1 { /* RTD1 */ reg = <0x1>; status = "okay"; mode = "thermistor"; /* Any of "thermistor", "thermal-diode", "voltage" */ }; sensor@2 { /* RTD2 */ reg = <0x2>; status = "okay"; mode = "thermal-diode"; /* Any of "thermistor", "thermal-diode", "voltage" */ }; sensor@3 { /* RTD3 */ reg = <0x3>; status = "okay"; mode = "voltage"; /* Any of "thermistor", "voltage" */ }; sensor@4 { /* LTD */ reg = <0x4>; /* using the same number as in sysfs */ status = "okay"; /* No mode configuration for LTD */ }; }; In this example, RTD1, RTD2 and LTD would be temperature sensors and RTD3 would be a voltage sensor. Would that make more sense? Is the use of strings acceptable? Thanks Oskar. [1] https://lore.kernel.org/all/20210921004627.2786132-1-osk@xxxxxxxxxx/