diff options
Diffstat (limited to 'io-module/machine')
-rw-r--r-- | io-module/machine/mtcpm.c (renamed from io-module/machine/mtcdt3.c) | 116 |
1 files changed, 78 insertions, 38 deletions
diff --git a/io-module/machine/mtcdt3.c b/io-module/machine/mtcpm.c index 373fc47..7052b51 100644 --- a/io-module/machine/mtcdt3.c +++ b/io-module/machine/mtcpm.c @@ -6,7 +6,7 @@ * occurrence of each pin, so there is only one * pin label set for each gpio pin. */ -static struct gpio_pin gpio_pins_mtcdt3[] = { +static struct gpio_pin gpio_pins_mtcpm[] = { { .name = "RADIO_RESET", .pin = { @@ -156,42 +156,36 @@ static struct gpio_pin gpio_pins_mtcdt3[] = { { }, }; -static DEVICE_ATTR_MTS(dev_attr_wifi_reset_mtcdt3, "wlan-enabled", +static DEVICE_ATTR_MTS(dev_attr_wifi_reset_mtcpm, "wlan-enabled", mts_attr_show_gpio_pin, mts_attr_store_gpio_pin); -static DEVICE_ATTR_MTS(dev_attr_bt_reset_mtcdt3, "bt-enabled", +static DEVICE_ATTR_MTS(dev_attr_bt_reset_mtcpm, "bt-enabled", mts_attr_show_gpio_pin, mts_attr_store_gpio_pin); -static DEVICE_ATTR_RO_MTS(dev_attr_wifi_bt_int_mtcdt3, "wifi-bt-int", +static DEVICE_ATTR_RO_MTS(dev_attr_wifi_bt_int_mtcpm, "wifi-bt-int", mts_attr_show_gpio_pin); -static DEVICE_ATTR_MTS(dev_attr_gnss_reset_mtcdt3, "gnss-reset", +static DEVICE_ATTR_MTS(dev_attr_gnss_reset_mtcpm, "gnss-reset", mts_attr_show_gpio_pin, mts_attr_store_gpio_pin); -static DEVICE_ATTR_MTS(dev_attr_usbhub_reset_mtcdt3, "usbhub-reset", +static DEVICE_ATTR_MTS(dev_attr_usbhub_reset_mtcpm, "usbhub-reset", mts_attr_show_gpio_pin, mts_attr_store_gpio_pin); -static DEVICE_ATTR_MTS(dev_attr_eth_reset_mtcdt3, "eth-reset", +static DEVICE_ATTR_MTS(dev_attr_eth_reset_mtcpm, "eth-reset", mts_attr_show_gpio_pin, mts_attr_store_gpio_pin); -static DEVICE_ATTR_MTS(dev_attr_gnss_int_mtcdt3, "gnss-int", +static DEVICE_ATTR_MTS(dev_attr_gnss_int_mtcpm, "gnss-int", mts_attr_show_gpio_pin, mts_attr_store_gpio_pin); -static DEVICE_ATTR_MTS(dev_attr_lora_reset_mtcdt3, "reset", +static DEVICE_ATTR_MTS(dev_attr_lora_reset_mtcpm, "reset", mts_attr_show_lora_gpio_pin, mts_attr_store_lora_gpio_pin); -static DEVICE_ATTR_RO_MTS(dev_attr_lora_cdone_mtcdt3, "cdone", +static DEVICE_ATTR_RO_MTS(dev_attr_lora_cdone_mtcpm, "cdone", mts_attr_show_lora_gpio_pin); -static DEVICE_ATTR_MTS(dev_attr_lora_creset_mtcdt3, "creset", +static DEVICE_ATTR_MTS(dev_attr_lora_creset_mtcpm, "creset", mts_attr_show_lora_gpio_pin, mts_attr_store_lora_gpio_pin); -static DEVICE_ATTR_RO_MTS(dev_attr_lora_eui_mtcdt3, "eui", +static DEVICE_ATTR_RO_MTS(dev_attr_lora_eui_mtcpm, "eui", mts_attr_show_lora_product_info); -static DEVICE_ATTR_RO_MTS(dev_attr_lora_product_id_mtcdt3, "product-id", +static DEVICE_ATTR_RO_MTS(dev_attr_lora_product_id_mtcpm, "product-id", mts_attr_show_lora_product_info); -static DEVICE_ATTR_RO_MTS(dev_attr_lora_hw_version_mtcdt3, "hw-version", +static DEVICE_ATTR_RO_MTS(dev_attr_lora_hw_version_mtcpm, "hw-version", mts_attr_show_lora_product_info); -static struct attribute *mtcdt3_platform_attributes[] = { - &dev_attr_vendor_id.attr, - &dev_attr_product_id.attr, - &dev_attr_device_id.attr, - &dev_attr_uuid.attr, - &dev_attr_hw_version.attr, +static struct attribute *mtcpm_platform_attributes[] = { &dev_attr_imei.attr, &dev_attr_eth_mac.attr, - &dev_attr_has_radio.attr, &dev_attr_reset.attr, &dev_attr_reset_monitor.attr, &dev_attr_reset_monitor_intervals.attr, @@ -216,37 +210,83 @@ static struct attribute *mtcdt3_platform_attributes[] = { &dev_attr_radio_reset_backoff_index.attr, &dev_attr_radio_reset_backoff_seconds.attr, - &dev_attr_wifi_reset_mtcdt3.attr, - &dev_attr_bt_reset_mtcdt3.attr, - &dev_attr_wifi_bt_int_mtcdt3.attr, + &dev_attr_wifi_reset_mtcpm.attr, + &dev_attr_bt_reset_mtcpm.attr, + &dev_attr_wifi_bt_int_mtcpm.attr, - &dev_attr_gnss_reset_mtcdt3.attr, - &dev_attr_gnss_int_mtcdt3.attr, + &dev_attr_gnss_reset_mtcpm.attr, + &dev_attr_gnss_int_mtcpm.attr, NULL, }; -static struct attribute_group mtcdt3_platform_attribute_group = { - .attrs = mtcdt3_platform_attributes + + +static struct attribute_group mtcpm_platform_attribute_group = { + .attrs = mtcpm_platform_attributes }; static int -is_radio_power_attr_mtcdt3(struct attribute *attr) +is_radio_power_attr_mtcpm(struct attribute *attr) { return (attr == &dev_attr_radio_power.attr); } -static struct attribute *mtcdt3_lora_attributes[] = { - &dev_attr_lora_eui_mtcdt3.attr, - &dev_attr_lora_product_id_mtcdt3.attr, - &dev_attr_lora_hw_version_mtcdt3.attr, - &dev_attr_lora_reset_mtcdt3.attr, - &dev_attr_lora_cdone_mtcdt3.attr, - &dev_attr_lora_creset_mtcdt3.attr, +static struct attribute *mtcpm_lora_attributes[] = { + &dev_attr_lora_eui_mtcpm.attr, + &dev_attr_lora_product_id_mtcpm.attr, + &dev_attr_lora_hw_version_mtcpm.attr, + &dev_attr_lora_reset_mtcpm.attr, + &dev_attr_lora_cdone_mtcpm.attr, + &dev_attr_lora_creset_mtcpm.attr, NULL, }; -static struct attribute_group mtcdt3_lora_attribute_group = { - .attrs = mtcdt3_lora_attributes +static struct attribute_group mtcpm_lora_attribute_group = { + .attrs = mtcpm_lora_attributes }; +static struct attribute *mtcpm_cpu_attributes[] = { + &dev_attr_vendor_id.attr, + &dev_attr_product_id.attr, + &dev_attr_device_id.attr, + &dev_attr_uuid.attr, + &dev_attr_hw_version.attr, + &dev_attr_imei.attr, + NULL, +}; + + +static struct attribute_group mtcpm_cpu_attribute_group = { + .attrs = mtcpm_cpu_attributes +}; + +static struct kobject *mts_cpu_kobject = NULL; + +static int mts_cpu_dir_create(uint8_t hw_version) +{ + if (hw_version != MTCPM_0_0) + return 0; + + mts_cpu_kobject = kobject_create_and_add("cpu", &mts_io_platform_device->dev.kobj); + if (!mts_cpu_kobject) { + log_error("kobject_create_and_add for cpu directory failed"); + return -ENOMEM; + } + + if (sysfs_create_group(mts_cpu_kobject, &mtcpm_cpu_attribute_group)) { + log_error("sysfs_create_group failed to create cpu group"); + return -ENOMEM; + } + + return 0; +} + +static void mts_cpu_dir_delete(void) +{ + if (mts_cpu_kobject) { + kobject_put(mts_cpu_kobject); + mts_cpu_kobject = NULL; + } +} + |