This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

XIO3130: Drive XIO3130 GPIOs

Part Number: XIO3130
Other Parts Discussed in Thread: XIO2001

We have used XIO3130 PCIe switch in one of our design application. On downstream side, we have connected 
three Wi-Fi modules. 

The control pins for these modules (For Example, disable signal, clock request signal) are connected to the GPIOs
of XIO3130 switch. Upstream port is connected to NXP P1020 processor.

Can we drive these GPIO pins with software kernel running in P1020? and can we configure the state (input, output or float) of these GPIOs 
through software or it has to be done through the EEPROM?

Thanks,
Dhaivat Master

  • Dhaivat,

    Changes to XIO3130 GPIO registers should be done through the EEPROM but the EEPROM can be accessed through software, see 3.4.4 Accessing Serial Bus Devices Through Software in data manual for details. Status registers for GPIO's can be read this way however EEPROM configurations are only read by XIO3130 after the assertion of /PERST thus changes tot the GPIO configuration would require a PCIe bus reset.
  • Malik Barton,

    Can you provide the default EEPROM file for XIO3130?

    -Dhaivat
  • Dhaivat,

    Unfortunately we do not have a default EEPROM file for XIO3130 however suggested register values are located in Table 3-3. EEPROM Register Loading Map.(second Column). 

  • Malik Barton,

    How can I generate the EEPROM file?
  • Dhaivat,

    The file would need to be made manually (generally a simple .txt file) and the structure of the file depends on the device that is writing to the EEPROM (in your case this is the NXP P1020 processor). Attached is a example for XIO2001 (just to give you any idea what an EEPROM file could look like), I recommend not using the file for XIO3130 directly.

    EEPROM Data File
    000	00	00000000
    001	24	00100100
    002	00	00000000
    003	00	00000000
    004	00	00000000
    005	00	00000000
    006	5E	01011110
    007	02	00000010
    008	00	00000000
    009	85	10000101
    00A	00	00000000
    00B	00	00000000
    00C	00	00000000
    00D	40	01000000
    00E	00	00000000
    00F	00	00000000
    010	00	00000000
    011	00	00000000
    012	00	00000000
    013	08	00001000
    014	00	00000000
    015	12	00010010
    016	00	00000000
    017	80	10000000
    018	20	00100000
    019	14	00010100
    01A	32	00110010
    01B	00	00000000
    01C	00	00000000
    01D	00	00000000
    01E	00	00000000
    01F	00	00000000
    020	42	01000010
    021	04	00000100
    022	08	00001000
    023	7E	01111110
    024	00	00000000
    025	C0	11000000
    026	00	00000000
    027	80	10000000
    028	FF	11111111
    029	FF	11111111
    02A	FF	11111111
    02B	FF	11111111
    02C	FF	11111111
    02D	FF	11111111
    02E	FF	11111111
    02F	FF	11111111
    030	FF	11111111
    031	FF	11111111
    032	FF	11111111
    033	FF	11111111
    034	FF	11111111
    035	FF	11111111
    036	FF	11111111
    037	FF	11111111
    038	FF	11111111
    039	FF	11111111
    03A	FF	11111111
    03B	FF	11111111
    03C	FF	11111111
    03D	FF	11111111
    03E	FF	11111111
    03F	FF	11111111
    040	FF	11111111
    041	FF	11111111
    042	FF	11111111
    043	FF	11111111
    044	FF	11111111
    045	FF	11111111
    046	FF	11111111
    047	FF	11111111
    048	FF	11111111
    049	FF	11111111
    04A	FF	11111111
    04B	FF	11111111
    04C	FF	11111111
    04D	FF	11111111
    04E	FF	11111111
    04F	FF	11111111
    050	FF	11111111
    051	FF	11111111
    052	FF	11111111
    053	FF	11111111
    054	FF	11111111
    055	FF	11111111
    056	FF	11111111
    057	FF	11111111
    058	FF	11111111
    059	FF	11111111
    05A	FF	11111111
    05B	FF	11111111
    05C	FF	11111111
    05D	FF	11111111
    05E	FF	11111111
    05F	FF	11111111
    060	FF	11111111
    061	FF	11111111
    062	FF	11111111
    063	FF	11111111
    064	FF	11111111
    065	FF	11111111
    066	FF	11111111
    067	FF	11111111
    068	FF	11111111
    069	FF	11111111
    06A	FF	11111111
    06B	FF	11111111
    06C	FF	11111111
    06D	FF	11111111
    06E	FF	11111111
    06F	FF	11111111
    070	FF	11111111
    071	FF	11111111
    072	FF	11111111
    073	FF	11111111
    074	FF	11111111
    075	FF	11111111
    076	FF	11111111
    077	FF	11111111
    078	FF	11111111
    079	FF	11111111
    07A	FF	11111111
    07B	FF	11111111
    07C	FF	11111111
    07D	FF	11111111
    07E	FF	11111111
    07F	FF	11111111
    080	FF	11111111
    081	FF	11111111
    082	FF	11111111
    083	FF	11111111
    084	FF	11111111
    085	FF	11111111
    086	FF	11111111
    087	FF	11111111
    088	FF	11111111
    089	FF	11111111
    08A	FF	11111111
    08B	FF	11111111
    08C	FF	11111111
    08D	FF	11111111
    08E	FF	11111111
    08F	FF	11111111
    090	FF	11111111
    091	FF	11111111
    092	FF	11111111
    093	FF	11111111
    094	FF	11111111
    095	FF	11111111
    096	FF	11111111
    097	FF	11111111
    098	FF	11111111
    099	FF	11111111
    09A	FF	11111111
    09B	FF	11111111
    09C	FF	11111111
    09D	FF	11111111
    09E	FF	11111111
    09F	FF	11111111
    0A0	FF	11111111
    0A1	FF	11111111
    0A2	FF	11111111
    0A3	FF	11111111
    0A4	FF	11111111
    0A5	FF	11111111
    0A6	FF	11111111
    0A7	FF	11111111
    0A8	FF	11111111
    0A9	FF	11111111
    0AA	FF	11111111
    0AB	FF	11111111
    0AC	FF	11111111
    0AD	FF	11111111
    0AE	FF	11111111
    0AF	FF	11111111
    0B0	FF	11111111
    0B1	FF	11111111
    0B2	FF	11111111
    0B3	FF	11111111
    0B4	FF	11111111
    0B5	FF	11111111
    0B6	FF	11111111
    0B7	FF	11111111
    0B8	FF	11111111
    0B9	FF	11111111
    0BA	FF	11111111
    0BB	FF	11111111
    0BC	FF	11111111
    0BD	FF	11111111
    0BE	FF	11111111
    0BF	FF	11111111
    0C0	FF	11111111
    0C1	FF	11111111
    0C2	FF	11111111
    0C3	FF	11111111
    0C4	FF	11111111
    0C5	FF	11111111
    0C6	FF	11111111
    0C7	FF	11111111
    0C8	FF	11111111
    0C9	FF	11111111
    0CA	FF	11111111
    0CB	FF	11111111
    0CC	FF	11111111
    0CD	FF	11111111
    0CE	FF	11111111
    0CF	FF	11111111
    0D0	FF	11111111
    0D1	FF	11111111
    0D2	FF	11111111
    0D3	FF	11111111
    0D4	FF	11111111
    0D5	FF	11111111
    0D6	FF	11111111
    0D7	FF	11111111
    0D8	FF	11111111
    0D9	FF	11111111
    0DA	FF	11111111
    0DB	FF	11111111
    0DC	FF	11111111
    0DD	FF	11111111
    0DE	FF	11111111
    0DF	FF	11111111
    0E0	FF	11111111
    0E1	FF	11111111
    0E2	FF	11111111
    0E3	FF	11111111
    0E4	FF	11111111
    0E5	FF	11111111
    0E6	FF	11111111
    0E7	FF	11111111
    0E8	FF	11111111
    0E9	FF	11111111
    0EA	FF	11111111
    0EB	FF	11111111
    0EC	FF	11111111
    0ED	FF	11111111
    0EE	FF	11111111
    0EF	FF	11111111
    0F0	FF	11111111
    0F1	FF	11111111
    0F2	FF	11111111
    0F3	FF	11111111
    0F4	FF	11111111
    0F5	FF	11111111
    0F6	FF	11111111
    0F7	FF	11111111
    0F8	FF	11111111
    0F9	FF	11111111
    0FA	FF	11111111
    0FB	FF	11111111
    0FC	FF	11111111
    0FD	FF	11111111
    0FE	FF	11111111
    0FF	FF	11111111
    
    'DATA FILE FORMAT: <HEX ADDRESS><TAB><HEX DATA>. EVERYTHING AFTER <DATA> IS IGNORED.
    'USE <'> FOR IN-LINE COMMENTING.
    'DATA FILE PARSING STOPS AT FIRST BLANK LINE.
    

  • Malik Barton,

    In our design, the EEPROM is connected to XIO3130 through SCL and SDA pins. EEPROM is not directly connected to P1020. So can P1020 load the file via XIO3130?
  • Dhaivat,

    Yes this is possible to write the EEPROM registers through XIO3130.
  • Malik Barton,

    Please see attached text file. We have generated the file according to the default configuration.
    Please give us your feedback.

    000	4C	01000111
    001	00	00000000
    002	24	00100100
    003	00	00000000
    004	00	00000000
    005	00	00000000
    006	00	00000000
    007	00	00000000
    008	00	00000000
    009	00	00000000
    00A	00	00000000
    00B	00	00000000
    00C	00	00000000
    00D	00	00000000
    00E	00	00000000
    00F	00	00000000
    010	00	00000000
    011	00	00000000
    012	00	00000000
    013	00	00000000
    014	01	00000001
    015	00	00000000
    016	00	00000000
    017	00	00000000
    018	00	00000000
    019	14	00010100
    01A	32	00110010
    01B	02	00000010
    01C	00	00000000
    01D	00	00000000
    01E	00	00000000
    01F	00	00000000
    020	FF	11111111
    021	FF	11111111
    022	FF	11111111
    023	FF	11111111
    024	00	00000000
    025	24	00100100
    026	3F	00111111
    027	04	00000100
    028	01	00000001
    029	00	00000000
    02A	01	00000001
    02B	00	00000000
    02C	00	00000000
    02D	00	00000000
    02E	00	00000000
    02F	14	00010100
    030	32	00110010
    031	10	00010000
    032	60	01100000
    033	1A	00011010
    034	00	00000000
    035	00	00000000
    036	02	00000010
    037	00	00000000
    038	01	00000001
    039	00	00000000
    03A	00	00000000
    03B	00	00000000
    03C	00	00000000
    03D	14	00010100
    03E	32	00110010
    03F	10	00010000
    040	60	01100000
    041	1A	00011010
    042	00	00000000
    043	00	00000000
    044	02	00000010
    045	00	00000000
    046	01	00000001
    047	00	00000000
    048	00	00000000
    049	00	00000000
    04A	00	00000000
    04B	14	00010100
    04C	32	00110010
    04D	10	00010000
    04E	60	01100000
    04F	1A	00011010
    050	00	00000000
    051	00	00000000
    

  • Dhaivat,

    This looks to be the correct and matchs the datasheet.
  • Malik Barton,

    Thank you. I have one more question before I close this query. Can processor (in this case P1020) drive the GPIOs of XIO3130 directly through software application?
  • Dhaivat,

    If you are asking if the processor can drive the GPIOs high/low/tri-state when the GPIOs are in output mode however when swithcing the GPIOs from Input mode to Output mode a reset using GRST and PERST will need to occur so that XIO3130 can re-read the EEPROM.

  • Malik Barton,

    Yes, can processor drive the GPIO high/low/tri-state?
  • Dhaivat,

    Yes, processor can drive GPIOs can be high/low not tri-state, sorry for my misleading post. GPIOs must be set to General Purpose Output
    and controlled through PCIE_GPIOX_DATA registers.
  • Malik Barton,

    Thank you very much for your help.