From: noralf@tronnes•org (Noralf Trønnes)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH v5 0/6] bcm2835: auxiliar device support for spi
Date: Thu, 10 Sep 2015 17:48:33 +0200 [thread overview]
Message-ID: <55F1A651.5090102@tronnes.org> (raw)
In-Reply-To: <87h9n4weg8.fsf@eliezer.anholt.net>
Den 09.09.2015 03:48, skrev Eric Anholt:
> kernel at martin.sperl.org writes:
>
>> From: Martin Sperl <kernel@martin•sperl.org>
>>
>> The BCM2835 contains 3 auxiliar devices:
>> * spi1
>> * spi2
>> * uart1
>>
>> All of those 3 devices are enabled/disabled via a shared register,
>> which is set by default to be disabled.
>>
>> Access to this register needs to get serialized.
>>
>> So after several iterations of discussions with the following ideas:
>> * syscon - device tree should describe HW not drivers to use -
>> 'compatiblity = "brcm,bcm2835-aux-enable", "syscon";'
>> is not acceptable
>> * regulator - it is not necessarily a regulator or a power gate
>> that is implemented in HW, so it is not valid to use
>> this framework
>>
>> The recommendation was made to create a new minimal API in soc
>> just for access to this shared enable/disable register.
>>
>> This patch-series implements:
>> * the bcm2835-auxiliar device enable/disable api in soc.
>> * the bcm2835-auxiliar spi device driver
>>
>> The uart1 device driver (ns16550 based) is not implemented so far
>> but would be using the same API.
>>
>> Both spi and uart drivers can run with shared interrupts,
>> so there is no need for an interrupt-controller to get implemented.
> I finally had a chance to sit down and look at what the hardware's doing
> with the enable bit (also, I've read a whole lot more of the hardware
> now, so I'm a lot faster at answering questions like this). The enable
> bits are a clock gate off of the VPU clock.
>
> I knocked together the enable bits as a clock gate driver, since I'd
> just written very similar code for the audio domain clock driver (and I
> assume you are grumpy about how much time you've spent on this one
> stupid register). It's up at
> https://github.com/anholt/linux/tree/bcm2835-clock-aux and I can submit
> it if you like the result. I've compile tested it only, but I'm hoping
> you could just drop your aux SPI driver on top of it and have things
> work.
>
This looks interesting.
But there's a challenge with the uart1 and the 8250 driver.
Phil Elwell has this to say:
This means that that UART1 isn't an exact clone of a 8250 UART.
In a particular, the clock divisor is calculated differently.
A standard 8250 derives the baud rate as clock/(divisor16),
whereas the BCM2835 mini UART uses clock/(divisor8). This means
that if you want to use the standard driver then you need to lie
about the clock frequency, providing a value is twice the real
value, in order for a suitable divisor to be calculated.
Ref: https://github.com/raspberrypi/linux/pull/1008#issuecomment-139234607
So either we need a new uart1 driver or a doubled clock freq. somehow.
Noralf.
next prev parent reply other threads:[~2015-09-10 15:48 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-04 9:41 [PATCH v5 0/6] bcm2835: auxiliar device support for spi kernel at martin.sperl.org
2015-09-04 9:41 ` [PATCH 1/6] soc: bcm2835: auxiliar devices enable infrastructure kernel at martin.sperl.org
2015-09-04 9:41 ` [PATCH v5 2/6] ARM: bcm2835: add DT for the bcm2835 auxiliar devices kernel at martin.sperl.org
2015-09-04 9:41 ` [PATCH v5 3/6] dt/bindings: bcm2835: add binding documentation for bcm2835-aux kernel at martin.sperl.org
2015-09-04 9:41 ` [PATCH v5 4/6] spi: bcm2835: new driver implementing auxiliar spi1/spi2 on the bcm2835 soc kernel at martin.sperl.org
2015-09-09 2:20 ` Eric Anholt
2015-09-04 9:41 ` [PATCH v5 5/6] ARM: bcm2835: enable building of spi-bcm2835aux driver in default config kernel at martin.sperl.org
2015-09-04 9:41 ` [PATCH v5 6/6] dt/bindings: bcm2835: Add binding documentation for auxiliar spi devices kernel at martin.sperl.org
2015-09-09 1:48 ` [PATCH v5 0/6] bcm2835: auxiliar device support for spi Eric Anholt
2015-09-09 9:00 ` Alexander Stein
2015-09-09 18:27 ` Eric Anholt
2015-09-10 15:48 ` Noralf Trønnes [this message]
2015-09-10 15:57 ` Martin Sperl
2015-09-10 17:02 ` Phil Elwell
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=55F1A651.5090102@tronnes.org \
--to=noralf@tronnes$(echo .)org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox