^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) * Solomon SSD1307 Framebuffer Driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) - compatible: Should be "solomon,<chip>fb-<bus>". The only supported bus for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) now is i2c, and the supported chips are ssd1305, ssd1306, ssd1307 and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) ssd1309.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) - reg: Should contain address of the controller on the I2C bus. Most likely
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) 0x3c or 0x3d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) - pwm: Should contain the pwm to use according to the OF device tree PWM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) specification [0]. Only required for the ssd1307.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) - solomon,height: Height in pixel of the screen driven by the controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) - solomon,width: Width in pixel of the screen driven by the controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - solomon,page-offset: Offset of pages (band of 8 pixels) that the screen is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) mapped to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Optional properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) - reset-gpios: The GPIO used to reset the OLED display, if available. See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) Documentation/devicetree/bindings/gpio/gpio.txt for details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) - vbat-supply: The supply for VBAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) - solomon,segment-no-remap: Display needs normal (non-inverted) data column
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) to segment mapping
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) - solomon,col-offset: Offset of columns (COL/SEG) that the screen is mapped to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) - solomon,com-seq: Display uses sequential COM pin configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - solomon,com-lrremap: Display uses left-right COM pin remap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) - solomon,com-invdir: Display uses inverted COM pin scan direction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - solomon,com-offset: Number of the COM pin wired to the first display line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - solomon,prechargep1: Length of deselect period (phase 1) in clock cycles.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - solomon,prechargep2: Length of precharge period (phase 2) in clock cycles.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) This needs to be the higher, the higher the capacitance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) of the OLED's pixels is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) - solomon,dclk-div: Clock divisor 1 to 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - solomon,dclk-frq: Clock frequency 0 to 15, higher value means higher
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) - solomon,lookup-table: 8 bit value array of current drive pulse widths for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) BANK0, and colors A, B, and C. Each value in range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) of 31 to 63 for pulse widths of 32 to 64. Color D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) is always width 64.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) - solomon,area-color-enable: Display uses color mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - solomon,low-power. Display runs in low power mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) [0]: Documentation/devicetree/bindings/pwm/pwm.txt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) Examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) ssd1307: oled@3c {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) compatible = "solomon,ssd1307fb-i2c";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) reg = <0x3c>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) pwms = <&pwm 4 3000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) reset-gpios = <&gpio2 7>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) ssd1306: oled@3c {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) compatible = "solomon,ssd1306fb-i2c";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) reg = <0x3c>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) pwms = <&pwm 4 3000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) reset-gpios = <&gpio2 7>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) solomon,com-lrremap;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) solomon,com-invdir;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) solomon,com-offset = <32>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) };