From 5ebe86a95c625406b7aa858429cfb954b2e83e45 Mon Sep 17 00:00:00 2001 From: Deokgyu Yang Date: Mon, 24 Aug 2020 14:48:59 +0900 Subject: [PATCH] WiringPi: Update in response to the latest regulations about I2C/SPI nodes Signed-off-by: Deokgyu Yang Change-Id: Ia6992332b157a6b078f5d1f67b280d2fc3a09774 --- gpio/gpio.c | 2 +- wiringPi/wiringPiI2C.c | 12 ++++++++++-- wiringPi/wiringPiSPI.c | 5 +++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/gpio/gpio.c b/gpio/gpio.c index 55107b8..431add8 100644 --- a/gpio/gpio.c +++ b/gpio/gpio.c @@ -207,7 +207,7 @@ static void doI2Cdetect (UNU int argc, char *argv []) port = 1; break; case MODEL_ODROID_XU3: - if (cmpKernelVersion(KERN_NUM_TO_REVISION, 5, 4, 0)) + if (cmpKernelVersion(KERN_NUM_TO_MAJOR, 5)) port = 0; else port = 1; diff --git a/wiringPi/wiringPiI2C.c b/wiringPi/wiringPiI2C.c index 48d0a1e..9cf93b9 100644 --- a/wiringPi/wiringPiI2C.c +++ b/wiringPi/wiringPiI2C.c @@ -244,15 +244,23 @@ int wiringPiI2CSetup (const int devId) switch(model) { case MODEL_ODROID_C1: case MODEL_ODROID_C2: - case MODEL_ODROID_XU3: device = "/dev/i2c-1"; break; + case MODEL_ODROID_XU3: + if (cmpKernelVersion(KERN_NUM_TO_MAJOR, 5)) + device = "/dev/i2c-0"; + else + device = "/dev/i2c-1"; + break; case MODEL_ODROID_N1: device = "/dev/i2c-4"; break; case MODEL_ODROID_N2: case MODEL_ODROID_C4: - device = "/dev/i2c-2"; + if (cmpKernelVersion(KERN_NUM_TO_REVISION, 4, 9, 230)) + device = "/dev/i2c-0"; + else + device = "/dev/i2c-2"; break; } diff --git a/wiringPi/wiringPiSPI.c b/wiringPi/wiringPiSPI.c index 406f099..e860ed6 100644 --- a/wiringPi/wiringPiSPI.c +++ b/wiringPi/wiringPiSPI.c @@ -150,6 +150,11 @@ int wiringPiSPISetupMode (int channel, int speed, int mode) sprintf(device, "%s%d", spiDevType0, channel); break; case MODEL_ODROID_XU3: + if (cmpKernelVersion(KERN_NUM_TO_MAJOR, 5)) + sprintf(device, "%s%d", spiDevType0, channel); + else + sprintf(device, "%s%d", spiDevType1, channel); + break; case MODEL_ODROID_N1: sprintf(device, "%s%d", spiDevType1, channel); break;