What is name of gpio hardware on a rock64?
#1
The driver code checks for it, and will return a valid answer if its a bcm2709, bcm2835, bcm2836, or a bcm2837. Code is:
Code:
#define CPUINFO_BUFSIZE (16*1024) // Should be large enough for now
static platform_t check_platform(void)
{
FILE *fp;
char *buf;
size_t fsize;
platform_t rv = RPI_UNSUPPORTED;

if(!(buf = rtapi_kmalloc(CPUINFO_BUFSIZE, RTAPI_GFP_KERNEL))) {
rtapi_print_msg(RPSPI_ERR, "hm2_rpspi: No dynamic memory\n");
return RPI_UNSUPPORTED;
}
if(!(fp = fopen("/proc/cpuinfo", "r"))) {
rtapi_print_msg(RPSPI_ERR, "hm2_rpspi: Failed to open /proc/cpuinfo\n");
goto check_exit;
}
fsize = fread(buf, 1, CPUINFO_BUFSIZE - 1, fp);
fclose(fp);

// we have truncated cpuinfo return unsupported
if(!fsize || fsize == CPUINFO_BUFSIZE - 1) {
rtapi_print_msg(RPSPI_ERR, "hm2_rpspi: Platform detection memory buffer too small\n");
goto check_exit;
}

/* NUL terminate the buffer */
buf[fsize] = '\0';

if(strstr(buf, "BCM2708")) {
rv = RPI_1;
} else if(strstr(buf, "BCM2709")) {
rv = RPI_2; //for RPI 3 too
} else if(strstr(buf, "BCM2835")) { // starting with 4.8 kernels revision tag has board details
char *rev_val = strstr(buf, "Revision");
if(rev_val) {
char *rev_start = strstr(rev_val, ": ");
unsigned long rev = strtol(rev_start + 2, NULL, 16);

if(rev <= 0xffff)
rv = RPI_1; // pre pi2 revision scheme
else {
switch((rev & 0xf000) >> 12) {
case 0: //bcm2835
rv = RPI_1;
break;
case 1: //bcm2836
case 2: //bcm2837
rv = RPI_2; // peripheral base is same on pi2/3
break;
default:
break;
}
}
}
}

check_exit:
rtapi_kfree(buf);
return rv;
}

And all the c style indenting has been stripped, so how do I post code?  This sucks.



Thanks everybody.

Cheers, Gene83
  Reply


Messages In This Thread
What is name of gpio hardware on a rock64? - by gene83 - 10-04-2017, 12:04 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  irradium (based on crux linux) Rock64 riscv64, aarch64 mara 0 153 03-24-2024, 01:07 PM
Last Post: mara
  Rock64 v2 - did not work song / audio sqw200zu 2 1,373 03-14-2024, 03:09 AM
Last Post: dmitrymyadzelets
  Rock64 won't boot dstallmo 0 338 12-27-2023, 10:34 AM
Last Post: dstallmo
  HDMI doesn't work on rock64 Noung1991 1 619 11-21-2023, 08:33 AM
Last Post: as365n4
  Rock64 + Klipper + KlipperScreen Instructions godzilla62 0 613 10-22-2023, 01:52 AM
Last Post: godzilla62
  Rock64 Debian 11 (Bullseye) install problem jbize 15 8,424 10-12-2023, 05:14 PM
Last Post: tpaul
  slarm64 (unofficial slackware) Rock64 RK3328 (aarch64) mara 133 190,744 10-09-2023, 03:31 AM
Last Post: mara
  arch rock64 does not boot nemnob 0 593 07-09-2023, 03:28 AM
Last Post: nemnob
  RXDP from Win10 to Armbian on Rock64 Transportsicherung 0 652 05-27-2023, 06:11 AM
Last Post: Transportsicherung
  DietPi OS for ROCK64 MichaIng 41 33,463 12-07-2022, 08:22 PM
Last Post: luminosity7

Forum Jump:


Users browsing this thread: 1 Guest(s)