Actually, the problem is very simple. This file does not exist.
#include <nuttx/drivers/ioexpander/pcf8575.h>
You probably wanted
#include <nuttx/ioexpander/pcf8575.h>
The more I look at what you are trying to do, the more confused I get.
There is a file at drivers/ioexpander/pcf8575.h, but you are not
permitted to include that. That contains internal driver definitions
that are not available to applications. For testing purposes (ONLY!!)
you could copy those definitions into your app. (Your app could never
be included upstream anyway because it violates far too many basic POSIX
interfacing principles. But for testing, you can do anything you want.).
The directory nuttx/drivers would be nonsense in that case because there
is no nuttx/ directory in the repository. You made that up and there is
no include path to access it.
The include file path corresponding to:
#include <nuttx/drivers/ioexpander/pcf8575.h>
is include/nuttx/drivers/ioexpander/pcf8575.h which does not exist.
This include file path
#include <nuttx/drivers/ioexpander/pcf8575.h>
corresponds to:
include/nuttx/drivers/ioexpander/pcf8575.h which exists and is legal to
include. But it is a different file.