    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/platform_device.h>
    #include <linux/of.h>
    #include <linux/of_gpio.h>
    #include <linux/gpio/consumer.h>

    #include <linux/hrtimer.h>
    #include <linux/ktime.h>

    static struct gpio_desc *led_desc;

    static struct hrtimer my_timer;
    static ktime_t kt;
    static bool led_state = false;

    static enum hrtimer_restart my_timer_callback(struct hrtimer *timer)
    {
        led_state = !led_state;
        gpiod_set_value(led_desc, led_state);
        pr_info("hrtimer: LED toggled %d\n", led_state);

        /* ^C}̍Đݒ */
        hrtimer_forward_now(timer, kt);
        return HRTIMER_RESTART;
    }

    static int myled_probe(struct platform_device *pdev)
    {
        led_desc = devm_gpiod_get(&pdev->dev, NULL, GPIOD_OUT_LOW);
        if (IS_ERR(led_desc)) {
            dev_err(&pdev->dev, "Failed to get GPIO\n");
            return PTR_ERR(led_desc);
        }

        gpiod_set_value(led_desc, 1);


        /* ^C} 100ms Őݒ */
        kt = ktime_set(0,100000000);
        hrtimer_init(&my_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
        my_timer.function = my_timer_callback;

        pr_info("hrtimer start\n");
        hrtimer_start(&my_timer, kt, HRTIMER_MODE_REL);

        pr_info("original_myred: probe called\n");
        return 0;
    }

    static void myled_remove(struct platform_device *pdev)
    {
        if (!IS_ERR_OR_NULL(led_desc)) {
            gpiod_set_value(led_desc, 0);
        }

        hrtimer_cancel(&my_timer);
        pr_info("myled removed\n");
    }

    static const struct of_device_id myled_of_match[] = {
        { .compatible = "original,myled" },
        { /* sentinel */ }
    };

    MODULE_DEVICE_TABLE(of, myled_of_match);

    static struct platform_driver myled_driver = {
        .driver = {
            .name = "original-myled",
            .of_match_table = myled_of_match,
        },
        .probe = myled_probe,
        .remove = myled_remove,
    };

    module_platform_driver(myled_driver);
    MODULE_LICENSE("GPL");