Kernel Temperatursensor auslesen innerhalb Kernel

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
Warlord
Beiträge: 128
Registriert: 10.03.2005 12:18:18
Wohnort: Norddeutschland

Kernel Temperatursensor auslesen innerhalb Kernel

Beitrag von Warlord » 19.10.2010 20:24:19

Moin Leude!

Mein Board verwendet einen Temperatursensor, der vom jc42-Treiber unterstützt wird.

Von meinem eigenen Kernel-Treiber möchte ich die Temperatur des Sensors auslesen und dies möglichst über den jc42-Treiber machen.

Zunächst habe ich in jc42.c also eine Funktion eingefügt und exportiert, die ich dann in meinem eigenen Treiber aufrufen kann:

Code: Alles auswählen

int jc42_get_temperature()
{ 
    /* get temp from register somehow */
    return temp;
}

EXPORT_SYMBOL(jc42_get_temperature)
Leider weiß ich nicht, wie ich an die aktuelle Temperatur rankomme. Die internen Funktionen brauchen alle ein struct device oder struct i2c_client als Parameter, welche wohl erzeugt werden, wenn man den "regulären" Weg über das Proc-Filesystem geht.

Ich habe auch schon versucht, mir während des Probe die entsprechenden Structs statisch wegzuspeichern und anschließend wiederzuverwenden, was aber leider auch nicht geht: ich bekomme immer den selben Temperaturwert, der nicht der Realität entspricht.

Gibt's hier einen Kernel-Profi, der mir einen Tip geben kann?

Benutzeravatar
king-crash
Beiträge: 742
Registriert: 08.08.2006 12:07:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Kernel Temperatursensor auslesen innerhalb Kernel

Beitrag von king-crash » 01.11.2010 12:38:48

Mach dir doch ein Paar globale Variablen, dann fügst du in einer Funktion, die so ein Device übergeben bekommt einfach einen Code ein, der das Device Handle in die globale Variable schreibt. Ist eine etwas hässliche Methode aber gut. Ansonsten wird es doch irgendwo eine art Init Funktion für jeden Sensor geben, welcher nur einmal für das jeweilige Device aufgerufen wird, dort könntest du natürlich einen Vergleichbaren Code unterbringen.

Antworten