From: Benjamin Braatz Date: Wed, 27 Jul 2022 09:35:16 +0000 (+0200) Subject: Changes to get compiled on Arch Linux ARM X-Git-Url: http://git.graph-it.com/?a=commitdiff_plain;h=740a0a0a85cb37aad5b128c85312a4ecbf5c36f3;p=graphit%2Funipi-kernel.git Changes to get compiled on Arch Linux ARM --- diff --git a/device_tree/neuron-spi-new-overlay.dts b/device_tree/neuron-spi-new-overlay.dts index c229042..cd69c2a 100644 --- a/device_tree/neuron-spi-new-overlay.dts +++ b/device_tree/neuron-spi-new-overlay.dts @@ -12,13 +12,13 @@ status = "okay"; pinctrl-0 = <&spi0_pins &spi0_cs_pins>; cs-gpios = <&gpio 8 1>, <&gpio 7 1>, <&gpio 24 1>, <&gpio 25 1>; - neuronspi0: neuronspi@0 { + neuronspi1: neuronspi@1 { compatible = "unipi,neuron"; reg = <1>; #address-cells = <1>; #size-cells = <0>; spi-max-frequency = <12000000>; - pinctrl-0 = <&neuron_0_irq_pin>; + pinctrl-0 = <&neuron_1_irq_pin>; pinctrl-names = "default"; interrupt-parent = <&gpio>; interrupts = <27 0x1>; @@ -27,13 +27,13 @@ neuron-probe-always-succeeds = <0>; neuron-always-create-tty = <0>; }; - neuronspi1: neuronspi@1 { + neuronspi2: neuronspi@2 { compatible = "unipi,neuron"; reg = <2>; #address-cells = <1>; #size-cells = <0>; spi-max-frequency = <1200000>; - pinctrl-0 = <&neuron_1_irq_pin>; + pinctrl-0 = <&neuron_2_irq_pin>; pinctrl-names = "default"; interrupt-parent = <&gpio>; interrupts = <23 0x1>; @@ -42,14 +42,14 @@ neuron-probe-always-succeeds = <0>; neuron-always-create-tty = <0>; }; - neuronspi2: neuronspi@2 { + neuronspi3: neuronspi@3 { compatible = "unipi,neuron"; reg = <3>; #address-cells = <1>; #size-cells = <0>; spi-max-frequency = <1200000>; pinctrl-names = "default"; - pinctrl-0 = <&neuron_2_irq_pin>; + pinctrl-0 = <&neuron_3_irq_pin>; interrupt-parent = <&gpio>; interrupts = <22 0x1>; status = "okay"; @@ -82,17 +82,17 @@ brcm,function = <1>; brcm,pull = <0>; }; - neuron_0_irq_pin: neuron_0_irq_pin { + neuron_1_irq_pin: neuron_1_irq_pin { brcm,pins = <27>; brcm,function = <0>; brcm,pull = <1>; }; - neuron_1_irq_pin: neuron_1_irq_pin { + neuron_2_irq_pin: neuron_2_irq_pin { brcm,pins = <23>; brcm,function = <0>; brcm,pull = <1>; }; - neuron_2_irq_pin: neuron_2_irq_pin { + neuron_3_irq_pin: neuron_3_irq_pin { brcm,pins = <22>; brcm,function = <0>; brcm,pull = <1>; @@ -105,9 +105,9 @@ cs1_pin = <&frag0>,"cs-gpios:16", <&spi0_cs_pins>,"brcm,pins:4"; cs2_pin = <&frag0>,"cs-gpios:40", <&spi0_cs_pins>,"brcm,pins:12"; cs3_pin = <&frag0>,"cs-gpios:28", <&spi0_cs_pins>,"brcm,pins:8"; - neuron_irq_0 = <&neuronspi0>,"interrupts:0", <&neuron_0_irq_pin>,"brcm,pins:0"; neuron_irq_1 = <&neuronspi1>,"interrupts:0", <&neuron_1_irq_pin>,"brcm,pins:0"; neuron_irq_2 = <&neuronspi2>,"interrupts:0", <&neuron_2_irq_pin>,"brcm,pins:0"; + neuron_irq_3 = <&neuronspi3>,"interrupts:0", <&neuron_3_irq_pin>,"brcm,pins:0"; }; }; diff --git a/modules/rtc-unipi/rtc-unipi.c b/modules/rtc-unipi/rtc-unipi.c index 255bcd1..7446b21 100644 --- a/modules/rtc-unipi/rtc-unipi.c +++ b/modules/rtc-unipi/rtc-unipi.c @@ -673,12 +673,11 @@ read_rtc: rtc_unipi->rtc->nvram_old_abi = true; #else nvmem_cfg.priv = rtc_unipi; - rtc_unipi->rtc->nvram_old_abi = true; - rtc_nvmem_register(rtc_unipi->rtc, &nvmem_cfg); + devm_nvmem_register(rtc_unipi->rtc->dev.parent, &nvmem_cfg); #endif rtc_unipi->rtc->ops = &mcp794xx_rtc_ops; /*chip->rtc_ops ?: &ds13xx_rtc_ops;*/ - err = rtc_register_device(rtc_unipi->rtc); + err = devm_rtc_register_device(rtc_unipi->rtc); if (err) return err; diff --git a/modules/unipi/src/unipi_spi.c b/modules/unipi/src/unipi_spi.c index a65ace3..5a50885 100644 --- a/modules/unipi/src/unipi_spi.c +++ b/modules/unipi/src/unipi_spi.c @@ -329,7 +329,8 @@ struct unipi_spi_context* unipi_spi_setup_context(struct spi_device* spi_dev, st s_trans = (struct spi_transfer *)(context + 1); spi_message_init_with_transfers(&context->message, s_trans, trans_count); - s_trans[0].delay_usecs = NEURONSPI_EDGE_DELAY; + s_trans[0].delay.value = NEURONSPI_EDGE_DELAY; + s_trans[0].delay.unit = SPI_DELAY_UNIT_USECS; s_trans[0].bits_per_word = 8; s_trans[0].speed_hz = freq; @@ -341,7 +342,8 @@ struct unipi_spi_context* unipi_spi_setup_context(struct spi_device* spi_dev, st packet_crc = neuronspi_spi_crc(send_buf->first_message, 4, 0); *((u16*)(send_buf->first_message+4)) = packet_crc; } - s_trans[1].delay_usecs = delay; + s_trans[1].delay.value = delay; + s_trans[1].delay.unit = SPI_DELAY_UNIT_USECS; s_trans[1].len = NEURONSPI_FIRST_MESSAGE_LENGTH; s_trans[1].tx_buf = send_buf->first_message; s_trans[1].rx_buf = recv_buf->first_message; @@ -355,7 +357,8 @@ struct unipi_spi_context* unipi_spi_setup_context(struct spi_device* spi_dev, st unipi_spi_trace_1(KERN_INFO "UNIPISPI: SPI Master Write(%3d) %32ph\n", len, send_buf->second_message); remain = len; for (i = 2; i < trans_count; i++) { - s_trans[i].delay_usecs = 0; + s_trans[i].delay.value = 0; + s_trans[i].delay.unit = SPI_DELAY_UNIT_USECS; s_trans[i].bits_per_word = 8; s_trans[i].speed_hz = freq; s_trans[i].tx_buf = send_buf->second_message + (NEURONSPI_MAX_TX * (i - 2)); @@ -1228,10 +1231,6 @@ s32 neuronspi_spi_probe(struct spi_device *spi) u32 always_create_uart = 0; struct kthread_worker *worker; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) - struct spi_delay inactive_delay; -#endif - unsigned long flags; n_spi = kzalloc(sizeof *n_spi, GFP_ATOMIC); @@ -1358,10 +1357,6 @@ s32 neuronspi_spi_probe(struct spi_device *spi) if (gpio_is_valid(spi->cs_gpio)) { spi->cs_gpio = -spi->cs_gpio; } -#else - inactive_delay.value = 40; - inactive_delay.unit = SPI_DELAY_UNIT_USECS; - spi_set_cs_timing(spi, NULL, NULL, &inactive_delay); #endif // Prepare worker for interrupt, LEDs, UARTs diff --git a/modules/unipi/src/unipi_tty.c b/modules/unipi/src/unipi_tty.c index 76c0184..d8a9db6 100644 --- a/modules/unipi/src/unipi_tty.c +++ b/modules/unipi/src/unipi_tty.c @@ -985,7 +985,7 @@ static long unipi_tty_compat_ioctl(struct tty_struct *tty, struct file *file, #endif static struct tty_ldisc_ops unipi_tty_ops = { - .magic = TTY_LDISC_MAGIC, + .num = N_PROFIBUS_FDL; .owner = THIS_MODULE, .name = "unipi_tty", .open = unipi_tty_open, @@ -1012,7 +1012,7 @@ int __init unipi_tty_init(void) { int err; unipi_tty_trace(KERN_INFO "UNIPISPI: TTY Init\n"); - err = tty_register_ldisc(N_PROFIBUS_FDL, &unipi_tty_ops); + err = tty_register_ldisc(&unipi_tty_ops); if (err) { printk(KERN_INFO "UNIPISPI: UniPi line discipline registration failed. (%d)", err); return err; @@ -1022,21 +1022,21 @@ int __init unipi_tty_init(void) void __exit unipi_tty_exit(void) { - tty_unregister_ldisc(N_PROFIBUS_FDL); + tty_unregister_ldisc(&unipi_tty_ops); } #else struct tty_ldisc_ops unipi_tty_ldisc; static void (*alias_n_tty_receive_buf)(struct tty_struct *tty, const unsigned char *cp, - char *fp, int count); + const char *fp, int count); static int (*alias_n_tty_receive_buf2)(struct tty_struct *tty, const unsigned char *cp, - char *fp, int count); + const char *fp, int count); static int (*alias_n_tty_ioctl)(struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg); static void unipi_tty_receive_buf(struct tty_struct *tty, const unsigned char *cp, - char *fp, int count) + const char *fp, int count) { int is_parmrk = I_PARMRK(tty); if (is_parmrk) { @@ -1050,7 +1050,7 @@ static void unipi_tty_receive_buf(struct tty_struct *tty, const unsigned char *c } static int unipi_tty_receive_buf2(struct tty_struct *tty, const unsigned char *cp, - char *fp, int count) + const char *fp, int count) { int ret; int is_parmrk = I_PARMRK(tty); @@ -1090,7 +1090,7 @@ int __init unipi_tty_init(void) memset(&unipi_tty_ldisc, 0, sizeof(unipi_tty_ldisc)); n_tty_inherit_ops(&unipi_tty_ldisc); - unipi_tty_ldisc.magic = TTY_LDISC_MAGIC; + unipi_tty_ldisc.num = N_PROFIBUS_FDL; unipi_tty_ldisc.name = "unipi_tty"; unipi_tty_ldisc.owner = THIS_MODULE; @@ -1102,7 +1102,7 @@ int __init unipi_tty_init(void) unipi_tty_ldisc.receive_buf2 = unipi_tty_receive_buf2; unipi_tty_ldisc.ioctl = unipi_tty_ioctl; - err = tty_register_ldisc(N_PROFIBUS_FDL, &unipi_tty_ldisc); + err = tty_register_ldisc(&unipi_tty_ldisc); if (err) { printk(KERN_INFO "UniPi line discipline registration failed. (%d)", err); return err; @@ -1112,6 +1112,6 @@ int __init unipi_tty_init(void) void __exit unipi_tty_exit(void) { - tty_unregister_ldisc(N_PROFIBUS_FDL); + tty_unregister_ldisc(&unipi_tty_ldisc); } #endif