Comments (6)
Pull up only 1 and see what changes in pinctrl?
from pi5_pcie.
Using pinctrl as suggested by @trejan the following can be observed:
Pulling P3 high:
$ diff idle.txt p3_high.txt
< 114: a1 pd | lo // PCIE_SDA/GPIO14 = SPI_S_MOSI_OR_BSC_S_SDA
> 114: a1 pd | hi // PCIE_SDA/GPIO14 = SPI_S_MOSI_OR_BSC_S_SDA
Pulling P4 high:
$ diff idle.txt p4_high.txt
< 28: no pd | lo // PCIE_RP1_WAKE/GPIO28 = none
> 28: no pd | hi // PCIE_RP1_WAKE/GPIO28 = none
< 115: a1 pd | lo // PCIE_SCL/GPIO15 = SPI_S_SCK_OR_BSC_S_SCL
> 115: a1 pd | hi // PCIE_SCL/GPIO15 = SPI_S_SCK_OR_BSC_S_SCL
Interesting that the PCIE_WAKE signal appears to be trigged with the clock being high. Taking this literally, a low BSC_S_SCL/GPIO15 indicates the PCIE_nWAKE request, too? Perhaps the signalling is to use the I2C clock stretching condition to signal a wake?
Couldn't get any life out of P1 and P2. Grounding P2 resulted in no difference from pinctrl. I was hoping it may have triggered RP1_PCIE_CLKREQ_N
(as below) but nothing.
36: no pd | lo // RP1_PCIE_CLKREQ_N/GPIO36 = none
P3=PCIE_SDA
P4=PCIE_SCL (and WAKE?)
Closing ticket. I2C pins identified. Thanks for the help @trejan!
from pi5_pcie.
Thanks for this. I'll add provision for this on the board. That's really useful knowledge. I'm also pretty sure that P1 is RST and P2 is CLKREQ (based on probing around with the scope some more). Means there is likely no presence detect (or some magic the RP2040 is doing over I2C with the driver?).
from pi5_pcie.
I expect autodetection would be via I2C like the Poe HATs. The prototype M.2 HAT has a fan connector and current sensing so that'll be via I2C as well if it ends up in the release board. I don't know how much of this is implemented in the public firmware though.
Adding a couple pullup resistors might make it show some activity during startup.
from pi5_pcie.
Will give that a shot. I'm just looking at the kernel & DT overlay source on the Pi5 GitHub. See if I can work out a way to tell SCL vs SDA when there's no data/clock on the bus.
from pi5_pcie.
Looking at the official Pi5 PCIe documentation,
P4=PCIE_SCL and WAKE is correct.
P3=PCIE_SDA also appears to serve as a PWR_EN signal.
from pi5_pcie.
Related Issues (5)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pi5_pcie.