liu qidong 1 неделя назад
Родитель
Сommit
a8f531d003
8 измененных файлов с 26 добавлено и 41 удалено
  1. 8 9
      Makefile
  2. 3 9
      buzzer.c
  3. 2 0
      cash_drawers.c
  4. 0 4
      power.c
  5. 11 7
      smart_battery.c
  6. 0 4
      ssegment.c
  7. 0 4
      test_app/setss.c
  8. 2 4
      test_app/test_beep.c

+ 8 - 9
Makefile

@@ -5,10 +5,9 @@ obj-m := opal.o
 
 opal-objs := main.o led.o light_ring.o ssegment.o ec_version.o buzzer.o fan.o writeprotect.o myname.o cash_drawers.o batteryled.o watchdog.o power.o switches.o backlight.o lcd_2x20.o smart_battery.o voltage_sysfs.o led_heartbeat.o sysfs_power.o vbat.o temperature_sysfs.o
 
-PROJECT_NAME ?= 0
-POS ?= 1
+
 KERNELDIR := ~/timesys/SDK64Bit-V6_02_00/kernel-source/linux-5.15/
-ccflags-y += -I./include -DPROJECT=$(PROJECT_NAME) -DPOS=$(POS)
+ccflags-y += -I./include
 EXTRA_CFLAGS +=-g -I$(PWD)/include
 
 INSTALL_DIR := /lib/modules/$(shell uname -r)/extra
@@ -16,12 +15,12 @@ INSTALL_DIR := /lib/modules/$(shell uname -r)/extra
 PWD = $(shell pwd)
 all:
 	make CROSS_COMPILE=~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu- -C $(KERNELDIR) M=$(PWD) modules
-	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/setss.c -DPROJECT=$(PROJECT_NAME) -o test_app/setss
-	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/test_beep.c -DPROJECT=$(PROJECT_NAME) -o test_app/beep
-	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/setled.c -DPROJECT=$(PROJECT_NAME) -o test_app/setled
-	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/system_ctl_app.c -DPROJECT=$(PROJECT_NAME) -o test_app/system_ctl_app
-	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/mywatchdog.c -DPROJECT=$(PROJECT_NAME) -o test_app/mywatchdog
-	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/cash_app.c -DPROJECT=$(PROJECT_NAME) -o test_app/cash_app -lpthread
+	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/setss.c  -o test_app/setss
+	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/test_beep.c  -o test_app/beep
+	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/setled.c  -o test_app/setled
+	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/system_ctl_app.c  -o test_app/system_ctl_app
+	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/mywatchdog.c  -o test_app/mywatchdog
+	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/cash_app.c  -o test_app/cash_app -lpthread
 	cp opal.ko opal_CMD.ko
 
 clean:

+ 3 - 9
buzzer.c

@@ -14,11 +14,9 @@
 #include <linux/io.h>
 #include "gpioregs.h"
 
-#if defined(PROJECT) && (PROJECT == POS)
-#define DEVICE_NAME "buzz0"
-#else
+
 #define DEVICE_NAME "buzzer"
-#endif
+
 
 #define CLASS_NAME "buzzer_class"
 #define DRIVER_NAME     "buzzer_driver"
@@ -192,7 +190,7 @@ static ssize_t buzzer_write(struct file *filp, const char __user *buf,
     freq = (dev->buffer[2]<<8) + dev->buffer[1];
     duration = dev->buffer[3];
 
-    if((status_flag==1) && (freq < 2 || (freq > 15 && freq < 100) || freq > 9999))
+    if((status_flag==1) && ((freq < 1000) || (freq > 9999)))
     {
         mutex_unlock(&dev->lock);
         return -EINVAL;
@@ -226,11 +224,7 @@ out:
 
     if (ret == 0 && status_flag == 1)
     {
-#if defined(PROJECT) && (PROJECT == POS)
-        schedule_delayed_work(&dev->delay_work1, msecs_to_jiffies(duration));
-#else
         schedule_delayed_work(&dev->delay_work1, msecs_to_jiffies(duration*1000));
-#endif
     }
     return count;
 }

+ 2 - 0
cash_drawers.c

@@ -286,6 +286,7 @@ int cashd_init(void)
     int i;
     struct device *device;
     cashd_major = 56;
+    return 0;
 
     cashd_class = class_create(THIS_MODULE, CLASS_NAME);
     if (IS_ERR(cashd_class)) {
@@ -364,6 +365,7 @@ fail_class:
 void cashd_exit(void)
 {
     int i;
+    return ;
     
     pr_info("cashd: Cleaning up driver\n");
     

+ 0 - 4
power.c

@@ -272,11 +272,7 @@ static void delay_work_func(struct work_struct *work)
     {
         rst_flag = 0;
     }
-#if defined(PROJECT) && (PROJECT == POS)
-    if(ac_flag >= 8 || sysfs_power_off_flag == 1)
-#else
     if(ac_flag >= 16 || sysfs_power_off_flag == 1)
-#endif
     {
         chardev_dev->status = 'P';
         chardev_dev->data_len = 1;

+ 11 - 7
smart_battery.c

@@ -11,7 +11,9 @@
 
 #include "smart_battery.h"
 
-#define DEVICE_NAME "smart_battery"
+#define MAJOR_NUM 56
+#define MINOR_NUM 50
+#define DEVICE_NAME "battery"
 #define CLASS_NAME "battery_acpi_class"
 
 #define BATTERY_IOC_MAGIC 'B'
@@ -424,12 +426,14 @@ int battery_acpi_driver_init(void)
     struct battery_acpi_device *dev;
     
     pr_info("Initializing Battery Character Device Driver v2.2\n");
+
+    dev_num = MKDEV(MAJOR_NUM, MINOR_NUM);
     
-    ret = alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME);
-    if (ret < 0) {
-        pr_err("Failed to allocate device number\n");
-        return ret;
-    }
+    // ret = alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME);
+    // if (ret < 0) {
+    //     pr_err("Failed to allocate device number\n");
+    //     return ret;
+    // }
     
     dev = kzalloc(sizeof(struct battery_acpi_device), GFP_KERNEL);
     if (!dev) {
@@ -473,7 +477,7 @@ err_class:
     mutex_destroy(&dev->lock);
     kfree(dev);
 err_alloc:
-    unregister_chrdev_region(dev_num, 1);
+    // unregister_chrdev_region(dev_num, 1);
     return ret;
 }
 

+ 0 - 4
ssegment.c

@@ -14,11 +14,7 @@
 #include <linux/io.h>
 #include "gpioregs.h"
 
-#if defined(PROJECT) && (PROJECT == POS)
-#define DEVICE_NAME "leds"
-#else
 #define DEVICE_NAME "ssegment"
-#endif
 #define CLASS_NAME "ssegment_class"
 #define DRIVER_NAME     "port80_seg7"
 #define BUFFER_SIZE 4

+ 0 - 4
test_app/setss.c

@@ -6,11 +6,7 @@
 #include <errno.h>
 #include <getopt.h>
 
-#if defined(PROJECT) && (PROJECT == POS)
-#define DEVICE_PATH "/dev/leds"
-#else
 #define DEVICE_PATH "/dev/ssegment"
-#endif
 
 
 int write_data_to_device(unsigned int data)

+ 2 - 4
test_app/test_beep.c

@@ -6,11 +6,9 @@
 #include <string.h>
 #include <stdlib.h>
 
-#if defined(PROJECT) && (PROJECT == POS)
-#define DEVICE_PATH "/dev/buzz0"
-#else
+
 #define DEVICE_PATH "/dev/buzzer"
-#endif
+
 
 int main(int argc, char *argv[])
 {