All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: Ayush Singh <ayushdevel1325@gmail.com>
Cc: kernelnewbies@kernelnewbies.org
Subject: Re: Getting help in writing tty driver
Date: Fri, 7 Jul 2023 14:04:20 +0200	[thread overview]
Message-ID: <2023070747-unable-punk-c8a6@gregkh> (raw)
In-Reply-To: <CA+Yfj7sQfcKxTkhCzcY1D4y=aTJvL6Ui+mDC7Q52fjrMU2F2GA@mail.gmail.com>

On Fri, Jul 07, 2023 at 04:37:53PM +0530, Ayush Singh wrote:
> Hello everyone, I am working on a Google Summer of Code 2023 project [1]
> under BeagleBoard.or. In this project, I have to write a Linux driver that
> exposes `dev/ttyMCU0` (or something else) which can be accessed as a Serial
> tty by MCUmgr [2]. This then sends the data and gets the response from the
> CC1352 processor in BeagelPlay [3], which runs Zephyr over HDLC UART (the
> data for this tty port has a particular HDLC address).
> 
> However, all the resources I could find seem to use deprecated or old APIs
> (like `alloc_tty_driver` instead of `tty_alloc_driver`). After some trial
> and error, I was able to transfer the data written to `ttyMCU0` to CC1352
> using `write` in `tty_operations`. However, I am stumped on how to send
> data to tty from the driver so that the userspace application can read it
> (like using `cat`). Supposedly it should be done using
> `tty_insert_flip_char` but the signature for this function in the tutorials
> and the one present at `tty_flip.h` is quite different and does not seem to
> work for me. Also, there seems to be something about the Echo flag but not
> sure what all that is.
> 
> Finally, I am not sure I understand the relationship between tty port, tty
> device, and tty driver either so it would be great if someone can guide me
> to resources related to tty. I think a simple tty echo driver should allow
> me to get the hang of what I am supposed to do.

Try looking at the tty driver example in the book, "Linux Device
Drivers, third edition".  It's out of date, but the ideas a much the
same in places for tty drivers.  And then look at any of the hundreds of
in-kernel tty drivers for examples of what to do.  You might want to
look at the "smaller" ones as you don't want to get bogged down with the
uart-specific stuff.

good luck!

greg k-h

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

      reply	other threads:[~2023-07-07 12:06 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-07 11:07 Getting help in writing tty driver Ayush Singh
2023-07-07 12:04 ` Greg KH [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2023070747-unable-punk-c8a6@gregkh \
    --to=greg@kroah.com \
    --cc=ayushdevel1325@gmail.com \
    --cc=kernelnewbies@kernelnewbies.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.