Contact:       linux-iio@vger.kernel.org
 Description:
                Raw (unscaled) phase difference reading from channel Y
-               that can be processed to radians.
\ No newline at end of file
+               that can be processed to radians.
+
+What:          /sys/bus/iio/devices/iio:deviceX/in_massconcentration_pm1_input
+What:          /sys/bus/iio/devices/iio:deviceX/in_massconcentrationY_pm1_input
+What:          /sys/bus/iio/devices/iio:deviceX/in_massconcentration_pm2p5_input
+What:          /sys/bus/iio/devices/iio:deviceX/in_massconcentrationY_pm2p5_input
+What:          /sys/bus/iio/devices/iio:deviceX/in_massconcentration_pm4_input
+What:          /sys/bus/iio/devices/iio:deviceX/in_massconcentrationY_pm4_input
+What:          /sys/bus/iio/devices/iio:deviceX/in_massconcentration_pm10_input
+What:          /sys/bus/iio/devices/iio:deviceX/in_massconcentrationY_pm10_input
+KernelVersion: 4.22
+Contact:       linux-iio@vger.kernel.org
+Description:
+               Mass concentration reading of particulate matter in ug / m3.
+               pmX consists of particles with aerodynamic diameter less or
+               equal to X micrometers.
 
        [IIO_GRAVITY]  = "gravity",
        [IIO_POSITIONRELATIVE]  = "positionrelative",
        [IIO_PHASE] = "phase",
+       [IIO_MASSCONCENTRATION] = "massconcentration",
 };
 
 static const char * const iio_modifier_names[] = {
        [IIO_MOD_Q] = "q",
        [IIO_MOD_CO2] = "co2",
        [IIO_MOD_VOC] = "voc",
+       [IIO_MOD_PM1] = "pm1",
+       [IIO_MOD_PM2P5] = "pm2p5",
+       [IIO_MOD_PM4] = "pm4",
+       [IIO_MOD_PM10] = "pm10",
 };
 
 /* relies on pairs of these shared then separate */
 
        IIO_GRAVITY,
        IIO_POSITIONRELATIVE,
        IIO_PHASE,
+       IIO_MASSCONCENTRATION,
 };
 
 enum iio_modifier {
        IIO_MOD_VOC,
        IIO_MOD_LIGHT_UV,
        IIO_MOD_LIGHT_DUV,
+       IIO_MOD_PM1,
+       IIO_MOD_PM2P5,
+       IIO_MOD_PM4,
+       IIO_MOD_PM10,
 };
 
 enum iio_event_type {
 
        [IIO_GRAVITY] = "gravity",
        [IIO_POSITIONRELATIVE] = "positionrelative",
        [IIO_PHASE] = "phase",
+       [IIO_MASSCONCENTRATION] = "massconcentration",
 };
 
 static const char * const iio_ev_type_text[] = {
        [IIO_MOD_Q] = "q",
        [IIO_MOD_CO2] = "co2",
        [IIO_MOD_VOC] = "voc",
+       [IIO_MOD_PM1] = "pm1",
+       [IIO_MOD_PM2P5] = "pm2p5",
+       [IIO_MOD_PM4] = "pm4",
+       [IIO_MOD_PM10] = "pm10",
 };
 
 static bool event_is_known(struct iio_event_data *event)
        case IIO_GRAVITY:
        case IIO_POSITIONRELATIVE:
        case IIO_PHASE:
+       case IIO_MASSCONCENTRATION:
                break;
        default:
                return false;
        case IIO_MOD_Q:
        case IIO_MOD_CO2:
        case IIO_MOD_VOC:
+       case IIO_MOD_PM1:
+       case IIO_MOD_PM2P5:
+       case IIO_MOD_PM4:
+       case IIO_MOD_PM10:
                break;
        default:
                return false;