Analog Devices Expands over 1000 Linux Device Drivers to Support Development
analog.com
analog.com
The link above is a press release, the full list of devices is here:
https://wiki.analog.com/resources/tools-software/linux-drive...
Part numbers prefixed with "LTC" are from Linear Tech, part numbers prefixed with "MAX" are Maxim, part numbers prefixed with "AD" are Analog Devices. Part numbers prefixed with "DS" are from Dallas Semiconductor, which was bought by Maxim a long time ago.
As someone who typically uses these devices in much smaller embedded systems, it's nice to have these hardware abstraction layers listed in one place, instead of having to transcribe it from the datasheet.
This is the next logical step for semiconductor companies like AD, TI, etc.
AD doesn't tend to compete on cost, so high quality open source drivers become a key differentiator compared to other companies with lower cost parts, especially as these parts become increasingly complex. A 9 axis IMU with 10 different acquisition and buffering modes, built in algorithms, etc. becomes a lot more tractable if you don't have to write the whole driver from a datasheet.
This looks just like some list of existing drivers, regardless of who wrote them.
It was done this way to try to make it easier for people to find the drivers, rather than rolling through kernel source. The Majority of the drivers are upstream (including the ones ADI writes), or are in process of going upstream, but some drivers - because of their development flow - will never meet upstream kernel coding guidelines.
[Disclaimer - I work at ADI].
Now if Broadcom starts to be opensource friendly then that would be a real change of heart.
The core SOC is a TI chip, but at least at the time while TI wasn't abhorrent, anything that might remotely help get the USB port working was a proprietary blob. I think they'd also sold the IP for that product to someone else by the time I was tinkering with it; I can't remember exactly but do recall it was either a nightmare or impossible to get a copy of the source code for the factory firmware.
This has turned me off to anything even using TI chips that I'm aware of. Maybe they've gotten better in the last decade. Probably they're fine if you're a hardware manufacturer paying for chips.
Because giving away the source code to their simulator doesn't make any business sense in the way giving a Linux kernel driver does.
Giving away LTSPICE is an effort to commoditize their complements. The complement to an opamp is a high quality simulation model. The complement to a high speed data converter is a working Linux driver for JESD204B. Both decrease the effort involved for ADI's customer to use ADI's parts.
Giving away LTSpice source code doesn't achieve a similar aim.
Also, unless something has changed, ltspice is wholly written by one person.
Devices with ARM A5 (like https://www.analog.com/adsp-sc589) are still supported.
Disclaimer - I work at ADI.
That's a pretty dated view of ADI's business.
These days they make most of their cheddar in their high speed data converter business. They have GSPS ADCs and DACs available that are hundreds of dollars per chip.
The Kuiper Linux support for Xilinx Zynq and MPSoC is telling. That's coded language for 5G physical layer and electronic warfare/SIGINT uses.
It also forms a big part of their business to sell associated components that complement the converters: clock sources, PLLs, some discrete RF, etc.
You missed the Intel SoC and Raspberry Pi support too. :)
According to the Annual Report [1] - ADI works with 125,000+ customers. That means diversity in application. The press release was focused on Linux, but there are a lot of other ecosystems that ADI also participates in - from Arduino to Pmod to No-OS to Mbed and more.
https://www.analog.com/media/en/news-marketing-collateral/so...
[Disclaimer - I work at ADI]
[1] https://investor.analog.com/static-files/ddc81d14-3ffe-4655-...
We are making a Pi HAT based on https://www.analog.com/ad9166 (no JESD204, NCO only) to demonstrate how to make a fast hopping CW ...
There are lots of things that Pi is a great answer for.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
static bool ltc4306_is_volatile_reg(struct device *dev, unsigned int reg)
{
return (reg == LTC_REG_CONFIG) ? true : false;
}
Oh man, c'mon. That kind of thing bugs me. Just "return reg == LTC_REG_CONFIG" already, sheesh. (And maybe make it a preprocessor directive while you're at it?)> The == (equal to) and != (not equal to) operators are analogous to the relational operators except for their lower precedence. Each of the operators yields 1 if the specified relation is true and 0 if it is false. The result has type int. For any pair of operands, exactly one of the relations is true.
https://port70.net/~nsz/c/c11/n1570.html#6.5.9p3
Thanks for clearing that up. (Although I feel a bit foolish now.)
That ternary operator "?" is just an if-statement which should have the same "problem" with an int argument. It is a broken compiler that would complain about an if statement but an identical ?-statement.
If the int nature of equals-to was a problem, you'd have to use limit its use to switch statements.
There is nothing to understand. Sorry for being a bit dense.
The strict requirement in the standard is just a 'scalar type': every conditional expression in C, even `if (true)`, technically evaluates on unequal comparison to zero. See section 6.8.4.1 "The if statement" of the standard:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf
This applies to ternary operators, if statements, do/while loops, for loop termination conditions, etc.
However, when defining a function that returns boolean, you've asked the compiler to make your program more strict than just returning an integer that's zero or nonzero, you're not allowed to return anything but 'true' or 'false' - no, you're not allowed to pack in error codes after the fact!
Then there's living in C++ land, which is 1000 times worse.
void foo(bool bar)
{
}
int main(void)
{
foo("Whose bright idea was this?");
}
No error, not even a warning, perfectly legit code. If bar had been declared int or char, you'd get an error. Instead, your code ends up less safe because you used bool, thinking you were doing the right thing. Yes, they wanted to allow it anywhere a conditional expression would fit, but implicit conversion from anything other than int and char would have been a good place to draw the line.So I wouldn't be surprised if the GP example was prompted by a similar design flaw in either the language or a particular compiler.
All the Linux kernel drivers found on https://github.com/analogdevicesinc/linux or upstreamed at kernel.org are released under the standard Linux kernel license - GPL 2.0. There is no "only for ADI devices" possible - doing so would be a violation of section 6 of the GPL 2 ("You may not impose any further restrictions on the recipients' exercise of the rights granted herein.")
Yes - ADI would encourage anyone to buy their devices - but no - we don't force it - There are many things that are "ADI devices only", but that's normally userspace or HDL or tools, not kernel.
Disclaimer - I work at ADI.
I meant to convey that creating a free software tool specifically to support a hardware catalog has precedent, makes business sense, and is useful to customers. Not everything has to conform to the FOSS die-hard ethos to upstream everything.
Disclaimer - I work at ADI.
glares at Hardkernel, Banana Pi
Windows driver model is so much better. Windows driver model allows you (in theory) to run drivers written 20 years ago.
Linux model doesn't scale because the more drivers the kernel includes, the more work is required to update them when something changes.
Also Linux model doesn't allow reusing unmodified drivers by other operating systems. So developers of other OS's have to duplicate the work that already has been done.
Disclaimer - I work at ADI.
Props for the driver thing though
This seems just plain wrong:
> We process your personal data ... to understand website usage and present you with content and advertising based on your browsing activities and interests, provided you have not opted out of such data processing.
GDPR is clear that the default is opt-in, not opt-out. And yes, the consent popup does not seem compliant to me.
I highly recommend you file a complaint with your DPA [1].
[0] https://www.analog.com/en/about-adi/landing-pages/001/privac...
[1] https://ec.europa.eu/info/law/law-topic/data-protection/refo...
I did forward your concern to the folks responsible for the web site and GDPR compliance - which I know they take very seriously.
From a personal opinion standpoint - while I'm sure there is some clarification to be made on the description, things like " ... provided you have not opted out of such data processing." could have been written " ... provided you have opted into such data processing." Neither says what the default is (the way I read it), just that there is an option.
The EU web site that you point to (for making a complaint), has options for "opt-in" and "opt-in less" (their words are "Accept All Cookies" or "Accept Only Essential Cookies"); there is no opt-out there either. Who is to say which are "essential"? On their cookie description page https://ec.europa.eu/info/cookies_en (which is actually pretty good, and more detailed than most), they don't say which are essential and what are not.... so still have no idea what I'm agreeing to...
Not saying that the ADI site is compliant or not (I only know that lots of folks worked on it and spent a lot of time on it), also acknowledge there are always room for improvements - which may or may not happen (Again - not on that team) - only that's its hard to communicate some of these things sometimes...
By the looks of it, the analytics cookies (eg SC_ANALYTICS_GLOBAL_COOKIE) are not set when not clicking "Accept and proceed". So my issue is only with the wording. In practice it is already opt in, so the text can and should be changed to opt in. The wording opt out does say the default is to accept, and you have to explicitly protest to not accept. (It looks like the wording was already changed?)
Imho, you shouldn't look at it as cookies vs no-cookies. The GDPR is not really about cookies, but about protecting your personal data. You're allowed to set cookies! But if you're processing personal data (such as non-anonymous analytics), you do have to ask permission.
What bothers me the most is the consent modal: I have to click the small blue text "cookie details" (vs the large green "Accept and proceed"), and then click the gray "Decline cookies" to not have my personal data processed and shared.
Why not give visitors 2 options equally?
- "Please use (and share) my personal data to improve this (and other) sites", and
- "No thanks, I'm just browsing"
If you offer those 2 options (and don't try to hide the "no thanks" behind an extra click and a hidden link), I would seriously reconsider consenting. As a sidenote: I would be even more likely to consent if it's not the first thing you force on me. Visiting a press release with a fresh session cookie? Or landing directly on a datasheet from a google search? Why even bother with non-anonymous analytics and ask me for consent? But if I'm clicking through and visiting other pages? Sure, ask to track me. My personal default is to decline, but if you can show mutual benefits I'm way more likely to consent.
As for the comments on the EU website I linked to: I agree. The wording is not clear as to what I'm accepting. As far as I understand:
- "visitor preferences" and "operational cookies" are required
- analytics cookies can be declined (even though they are already anonymous)
- third party cookies are handled separately, when viewing third party content
Following my own advice, I will contact the European Union DPO, and ask them to clarify the consent popup.
This should really be an import addendum to my previous post!: the first step is to contact the site's DPO, and only escalate to your nation's data protection agency when this approach fails.
Thank you again rgetz for taking the time to respond, and for raising this issue internally. It looks like wording of the privacy policy was already changed. I hope the consent popup can also be improved. Your response and the quick update of the privacy policy has greatly improved my opinion of Analog Devices.
Disclaimer - I work at ADI.
So good. Thank you!
They’re not expanding 1000 drivers, but their own Linux distribution with over 1000 drivers, i.e. they’re adding drivers to their own distribution.
> Analog Devices Expands Linux Distribution with Over 1000 Device Drivers to Support the Development of High-Performance Solutions
The Kuiper distribution is about convenience for those people who want to be users, not developers.
[Disclaimer - I work at ADI]
Disclaimer - I work at ADI.
I usually write my own drivers, but that gets to be more and more effort if I want to make use of more sophisticated functions, plus I can make mistakes by mis-reading the datasheet or just counting wrong. I might be discouraged from using a function that I don't quite understand, but a pre-written driver might get me past that.
Note that these "drivers" are routines that talk to fairly low level hardware ports of a Linux computer, and I might modify the code for use on a microcontroller without an OS.